Criador e mantenedor principal do grupo
Felipe criou o grupo em novembro de 2017 e mantém o seu arquivo público; participou de 1038 das 1653 conversas do índice dos nove primeiros anos. No início, levou o grupo a frequentar o acervo não exposto da Poli/USP, onde documentou os terminais Scopus Sagitta 150 e Lepus 200 e o PC-XT Nexus 2600, criou a organização ArqueologiaDigital no GitHub e o site arqueologiadigital.org e transcreveu os esquemáticos do Atari Gran Trak 10 para o netlist do MAME. Seu projeto mais longo é a engenharia reversa e a emulação do teclado Technics KN5000: decifrou a compressão e o formato dos disquetes de atualização do firmware, extraiu as ROMs pela porta paralela do aparelho e teve aceitos no MAME o primeiro driver do KN5000 e a variante TMP94C241 da CPU TLCS-900. No Patinho Feio, desenhou as PCBs das réplicas do painel encomendadas pela FDTE para os 50 anos do computador e digitalizou os anexos de 1973 com o cross-assembler. Também analisou a ROM do Pense Bem decapsulada por Travis Goodspeed, retomou a emulação do Itautec I-7000 e portou o campo minado Mines para o arcade do GunSmoke e, com L., para o MS-DOS. Mais recentemente, com o Claude Code, portou a VM do Another World para o KN5000 e emulou no MAME o sintetizador de Guido Stolfi.
13507 mensagens, desde 6 nov 2017.
| 2017 | 1308 | |
| 2018 | 2211 | |
| 2019 | 556 | |
| 2020 | 527 | |
| 2021 | 2147 | |
| 2022 | 1830 | |
| 2023 | 955 | |
| 2024 | 1443 | |
| 2025 | 1002 | |
| 2026 | 1528 |
Teclados Technics (KN5000, KN7000 e outros) (134), Patinho Feio (67), Mines, o campo minado coletivo (64), Outros drivers e propostas no MAME (52), Restauração de hardware e eletrônica (50), Pense Bem (45), História da computação e links (45), Another World (33), Desenvolvimento e comunidade do MAME (33), Arcades, pinball e videogames em lógica discreta (32), Computadores homebrew, kits e réplicas (32), Computadores e sistemas nacionais (31), Scopus e o Nexus 2600 (30), Desmontagens de software MSX e emuladores em 4 KB (27), Museus, arquivos e acervos digitais (25), Acervo da Poli/USP e acervos universitários (24), Programação para plataformas antigas (24), Eventos, palestras e cursos (24), Consoles e história dos videogames (23), Instrumentos musicais e sintetizadores (22), Código-fonte histórico liberado e recuperado (22), Organização do grupo (20), MSX (19), IA generativa na engenharia reversa (19), Emuladores e comunidade da emulação (19), Demoscene e arte computacional (19), Sintetizador de Guido Stolfi (16), Memória da informática e dos jogos no Brasil (16), Ferramentas e técnicas de engenharia reversa (16), Zeebo, TecToy e consoles nacionais (15), Preservação de jogos e direitos (15), Extração de ROMs, decapping e leitura de chips (13), VET 3000 e brick games (12), Itautec I-7000 e Itautec (10), Música e chips de som (7), Mídias antigas e recuperação de dados (7), Descompilação e recompilação (4), Tipografia e geradores de caracteres (4)
Temas: Patinho Feio (19), Scopus: terminais e o PC-XT Nexus 2600 (28), Acervo de computadores da Poli/USP (21), Emulação de computadores no MAME (19), Arcades: réplicas funcionais e circuitos sem CPU (12), Organização do grupo, site e encontros (11), Demoscene e retroprogramação (11), Pense Bem e engenharia reversa de chips (5), Restauração de hardware e eletrônica (14), Preservação digital e história da computação (19)
Felipe converteu o grupo em supergrupo e fixou uma mensagem com a descrição do grupo. É um grupo de estudos para preservar hardware histórico, e o resgate do Patinho Feio é um dos principais projetos. O histórico do grupo é publicado em arqueologiadigital.org. Felipe observou que a versão web do Telegram não mostrava a mensagem fixada, que aparecia no cliente desktop; Werner passou a usar o cliente desktop.
Werner tentou um build parcial do MAME com o driver trs80, para o CP-500. Apareceram vários erros: GL/gl.h ausente (resolvido instalando mesa-common-dev), um conflito de dependências entre SDL2 e systemd, e emu.h não encontrado. Felipe indicou o comando make com SUBTARGET, SOURCES, REGENIE e clean. A VM travou durante uma atualização do gcc e foi perdida. Seguiu-se uma discussão sobre dual boot, Linux versus Windows e distribuições mais estáveis.
Felipe mostrou o conversor USB-serial com chip FTDI que pretende usar com o Sagitta. Werner e Felipe discutiram a troca dos capacitores e o conector de alimentação, que tem três pinos alinhados e não segue nenhum padrão. Planejaram montar um cabo com plugues banana, medir fase, neutro e terra com um multímetro e verificar o fusível de 2 A.
Werner foi creditado no PR #2776, que traz um driver ainda não funcional do Scopus Sagitta 150/180 para o MAME. Felipe fotografou a placa do Sagitta 150 na USP: os baud rates impressos no silk, os cabos do CRT e os jumpers que separam a fonte da lógica digital. Ele também rastreou a varredura do teclado (74145, contador 7493, flip-flop 7474), mas ainda não achou onde ela chega ao barramento da CPU. Ficou combinada uma nova visita, com osciloscópio.
Felipe contou que, depois da conversa com o professor Fernando, o grupo vai frequentar o espaço da USP. Lá pretende inspecionar máquinas, escrever emuladores e restaurar equipamentos, e começar organizando a sala do acervo não exposto. O acervo está sendo catalogado num software livre que gera um site público, e Felipe sugeriu hospedar nesse site emuladores compilados para JavaScript com emscripten, como faz o Internet Arcade. Werner sugeriu painéis interativos em SVG, como o do Patinho Feio.
Felipe compartilhou o post do fórum Fiozera sobre os terminais seriais Sagitta 150 e 180 da Scopus. Em seguida anunciou que preparava mais um post para o dia seguinte, para consolidar as ideias discutidas no grupo.
Ismael Luceno descreveu um PC antigo que perde os dados do RTC ao desligar, embora a bateria funcione. Ele também mostrou uma placa de rede 3Com com CPU ARM, para a qual não encontrou documentação.
A conversa partiu de uma foto sobre a criação de sprites. Felipe indicou seu post no blog do MAMEdev sobre como recuperou uma placa CPS2 brasileira de Street Fighter Zero 2. A placa foi achada no lixo de uma central de reciclagem de eletrônicos em Brasília e dada a ele de presente.
Relendo o livro sobre a história do LSD e do PCS, Felipe lembrou dos computadores G-10, G-11 e Cobra 530 e de que precisa conversar com o professor Stephan Kovacs. Ele mostrou a bibliografia e a descrição do conjunto de instruções do G-10 que aparecem na tese "Procedimentos Microprogramados num Minicomputador", de Edit Grassiani (1975), disponível no Internet Archive. Werner procurou as referências 22 a 24 da tese e pediu a Felipe os scans das páginas do livro que citam o G-10.
Felipe compartilhou o post do Fiozera "Arqueologia Digital: Resgate histórico dos computadores pioneiros do Brasil" e fotos da sua apresentação no Roadsec.
Werner conseguiu compilar o MAME no Windows depois de reinstalar o MinGW do zero. Sobre as ROMs do CP-500 de um site, Felipe explicou que as ROMs do MAME foram extraídas por ele da própria placa e que as outras precisam ser verificadas antes de entrar no catálogo. O MAME registra cada chip como um arquivo separado. Dumps feitos por software no próprio aparelho podem sair alterados por hardware mapeado nos mesmos endereços, por isso o melhor é ler a EPROM fora da placa.
Werner decidiu tentar emular o G-10, usando como base o driver do Patinho Feio. Felipe explicou a diferença entre CPU microprogramada (caso do G-10) e unidade de controle hardwired (caso do Patinho Feio e do Zezinho). Ele propôs criar no MAME uma forma de depurar tanto no nível de micro-instrução quanto no de instrução. Também apontou que o MAME não permite escolher, de forma combinada, a versão da ROM de microcódigo e a da ROM de boot. Werner mencionou e Felipe indicou a tese de Wilson Ruggiero sobre um processador microprogramado; nenhum dos dois sabia ao certo se ela trata do G-10.
O PR #2776 aguardava alterações pedidas na revisão. Felipe indicou o branch sagitta180 e o arquivo src/mame/drivers/scopus.cpp, que deve reunir os terminais da Scopus. Ele também mencionou que há um PC-XT da Scopus no acervo da USP. Werner compilou o driver e o emulador rodou, mas sem responder ao teclado.
Werner notou diferenças nas teclas do driver do CP-500 e propôs mapear o teclado de forma empírica, com a ajuda de fotos. Felipe apontou que os drivers do TRS-80 Model III e derivados não leem imagens de disco JV3/DMK. Sugeriu também classificar as ROMs que circulam na web e testar variantes como o CP-500/M80. Para essas variantes, explicou como declarar um driver derivado ou BIOS alternativas, usando replicator.cpp como exemplo.
Felipe explicou que o driver da impressora 3D Replicator inicia e mostra texto no LCD. Porém, a emulação dos timers do AVR8 está incompleta, o que, segundo ele, impede a música e o teclado de funcionar. Com os timers corrigidos, ele gostaria de mostrar modelos 3D se movendo conforme os comandos do firmware.
Werner viu que, de vez em quando, o driver cp500 mostra uma tela errada no lugar da tela de boot. Os dois investigaram o flip-flop A11 (cp500_a11_flipflop_toggle, em machine/trs80.cpp) e o reset, mas Felipe não conseguiu reproduzir a falha. Felipe contou que Cuavas considera que o driver trs80 precisa ser reescrito.
Werner compartilhou PDFs de livros da Letron que teve na adolescência: "Construa Seu Computador", "Circuitos de Micros" e a folha avulsa com o esquema Z-80 do micro "Micro-Galena", montado em placa de madeira com wire wrap. Os PDFs vieram do site cp500.com.br. As listagens em BASIC trazem marcações para adaptar o código a cada micro nacional.
Felipe mostrou o driver zapcomputer.cpp, baseado no livro de Steve Ciarcia sobre como construir um microcomputador Z80. A ROM foi digitada por ele a partir da listagem do livro. Werner conseguiu rodar o driver. Para entender as teclas, Felipe indicou os comentários no código-fonte e o menu "Input (this machine)", e disse que o driver ainda precisa de melhorias. Segundo Werner, na edição brasileira do livro o micro se chamava PAZ.
Y K indicou o acervo do Datassette. Felipe sugeriu subir uma cópia dos arquivos do Datassette como coleção no Internet Archive e comparou os objetivos do grupo aos do Archive Team. Ele também citou a coleção "MSDOS demoscene" que criou no Internet Archive. Werner mostrou que o Wayback Machine guarda as páginas do site e compartilhou o post "O cisne brasileiro".
Ficou confirmada a ida ao LASSU, na Poli/USP, com dois objetivos. O primeiro era gravar um episódio do Happy Hacking Video Blog com Daniel Quadros (DQ) sobre os terminais da Scopus e o hardware do LEPUS 200. O segundo era organizar o acervo não exposto para montar uma bancada de restauração. DQ comentou que o Sagitta provavelmente usa teclas indutivas e que o Lepus teria sido o primeiro terminal da Scopus com teclas de contato.
DQ contou que se formou em 1981, no que acredita ter sido a última turma a usar cartões perfurados antes de a USP comprar terminais Sagitta 180. De 1981 a 1986 trabalhou na Scopus com firmware de terminais de vídeo e com BIOS e sistema operacional de um micro compatível com PC, experiência que deu origem ao livro "PC Assembler". Ele mantém um blog desde 2005 e foi um dos fundadores do Garoa Hacker Clube.
Felipe distribuiu o dump da EPROM do Lepus 200. Ele observou que o endereçamento dos periféricos é definido por duas PROMs ligadas às linhas A15-A13 do 8085 e ao pino SOD. Os chips 8275 e 8276 foram comparados: o MAME só tem o 8275, e o 8276 não tem DMA. DQ publicou um disassembly parcial (lepus.asm) com o mapa de memória e indicou a application note AP-62 da Intel como inspiração do hardware do Lepus. Ele mostrou que o firmware simula o DMA com sequências de POP acionadas pela instrução SIM, e que usa truques para limpar linhas e rolar a tela.
Felipe encaminhou um artigo do IEEE Spectrum sobre a demonstração do Xerox Alto nos seus 40 anos.
Felipe criou a organização ArqueologiaDigital no GitHub e migrou para ela os repositórios de escaneamento de teses e do Patinho Feio. Criou também o repositório ArqueologiaDigital.github.io, para um site que sirva de porta de entrada para o material no Internet Archive, GitHub, Fiozera e no grupo, e registrou o domínio arqueologiadigital.org. Werner fez a primeira versão da página, com menu de navegação, por meio de um pull request. Ficou combinado que mudanças não triviais passam por PR.
Felipe organizou cerca de metade da sala do acervo não exposto da USP e conversou com o professor João José Neto, que o incentivou a continuar a construção do painel do Patinho Feio. Felipe encomendou as PCBs da CDE-3 e de debug, com mínimo de três unidades: um par para cada um e um para a Poli. Werner se ofereceu para pagar os componentes e pediu a lista de materiais (BOM).
Felipe pegou um cartucho de software emprestado da USP para estudo e extraiu as duas EPROMs UV. As mask ROMs estão soldadas na placa e são mais difíceis de retirar. Segundo Felipe, o ideal seria emular uma impressora LaserJet e carregar o cartucho como extensão opcional.
Felipe criou o repositório Documentos_Scopus com o escaneamento de uma publicação da Scopus trazida por DQ e gerou o PDF de "Tecnologia Scopus", de outubro de 1983.
Felipe perguntou se alguém teria acesso a uma máquina de café com ficha e display LCD, para extrair a ROM e emulá-la no MAME. Y K informou que há uma no IME da USP, mas Felipe supôs que ela não estaria acessível para ser aberta.
Com informações de Manoel Lemos, Felipe documentou no driver do MAME as quatro teclas extras do CP-400 Color II (CTRL, PA1, PA2 e PA3), cujo uso ainda é desconhecido. Werner mostrou seu CP-400 Color completo e com os manuais. Manoel registrou os códigos das teclas com um programa em BASIC e explicou que extraiu a ROM usando um cabo FTDI com um inversor a transistor. Uma hipótese levantada no Fiozera é que as teclas serviriam para emular um terminal IBM 3270. As fotos de Werner confirmaram que o Color II usa a mesma carcaça do CP-400.
Felipe avisou que o chat tem um log público no GitHub Pages, sincronizado manualmente e por enquanto hospedado junto aos logs do Garoa. Werner disse que poria esse link no site.
Werner propôs transformar o CP-400 num portátil, com carcaça nova, LCD de vídeo composto e o teclado original, e analisou as tensões de +12, -12 e -5 V da fonte. Felipe sugeriu redesenhar uma placa compacta no KiCad, e Manoel propôs refazer o projeto com componentes modernos. Werner citou a placa Multicore de Victor Trucco, que usa FPGA, e comprou um display de 5" com duas entradas de vídeo composto.
Diante do número de projetos em paralelo, Werner defendeu concentrar o esforço em terminar o Patinho Feio. Felipe definiu como prioridades de curto prazo o painel emulado e as PCBs do decodificador e do debugger didático da CDE-3. O site ficou como item secundário; Felipe observou que o site e os posts no Fiozera ajudam a organizar as ideias discutidas no chat.
Guilherme Kenzo, que conheceu o grupo no Roadsec, propôs dar uma abordagem acadêmica às entrevistas. Foi marcada uma reunião no Garoa Hacker Clube no dia 23/11, às 20h, com Felipe e Werner. Depois, Guilherme anunciou que prepararia um formulário de entrevista.
DQ continuou o disassembly do Lepus 200. As teclas são lidas nos endereços E002 a E00B, um por linha da matriz, e só uma tecla é aceita por vez, além de shift e control. Shift e control escolhem tabelas de conversão em 0x41D, 0x46D e 0x4BD. Na porta E000, a leitura retorna a dip switch, e a escrita controla o baud rate, o buzzer e um bit que DQ primeiro achou ser o clique do teclado e depois disse parecer ser o LED de caps lock.
Werner compartilhou material sobre o Wheels II (1975), da Midway, um jogo de corrida feito quase só com TTL e que usa uma ALU 74181. Felipe comparou com o Gran Trak 10, da Atari, indicou o relato de Ed Fries sobre o conserto de uma placa desse jogo e contou que transcreveu cerca de 40% do esquema do Gran Trak 10 no KiCad.
Felipe observou que posts no Facebook não servem para preservação e propôs reaproveitar seus resumos, como o do CP-400 Color II, na página inicial do site. Para isso registrou uma issue e passou a usar o prefixo [homepage] para conteúdo pendente de publicação no site. O site funcionaria como um portal no estilo de notícias, com links para Fiozera, GitHub, Internet Archive e YouTube. Werner propôs um feed alimentado manualmente a partir de um arquivo de texto.
Felipe anunciou uma pequena demoparty no Garoa em 02/12, com submissão confirmada do grupo argentino PVM. Ele preparou o emulador VICE para exibir as demos de Commodore 64. Werner sugeriu interfaces SD como o sd2iec. Felipe relatou que uma interface feita com Arduino que já testou funciona, mas não com várias demos que usam fastloader, e suspeita que o sd2iec tenha o mesmo problema.
Felipe postou uma foto em que Werner identificou a marca Unitron. Felipe lembrou que a Unitron, que hoje fabrica lâmpadas de emergência, produzia clones de Apple II nos anos 1980. Werner contou que sua escola montou um laboratório de informática com micros Unitron.
Felipe compartilhou o lançamento do MAME 0.192. A lista de novidades inclui o Codimex e o Gran Trak 10 em TTL, este marcado como não funcional. Felipe explicou que os drivers do Sagitta e do Zezinho ainda estão em pull requests pendentes, que o Lepus 200 tem só um rascunho de driver e que o Patinho Feio não teve mudanças no mês.
Felipe analisa o assembly do Z80 que controla os motores do cockpit giratório do Galaxy Force 2 Super Deluxe (driver segaybd.cpp do MAME). Ele identifica três grupos de endereços de escrita (0x8000, 0x9000 e 0x9400) e levanta a hipótese de que sejam canais de comunicação com o 68000 da placa principal, em que pares de escritas de 8 bits formariam valores de 16 bits; Werner nota que no bloco 0x9400 é carregado $80 em vez de $00. Em seguida orienta Werner a compilar o MAME e rodá-lo em modo debug e explica a estrutura do driver e os callbacks de saída do chip de I/O SEGA 315-5296. Cita dois PRs seus no MAME: um que mapeia os bits de porta usados como retorno do movimento dos motores (sensores de fim de curso) e outro que declara o Z80 da CPU de motores. O objetivo declarado é uma réplica em miniatura movida pelos sinais do emulador num Raspberry Pi.
Felipe anuncia a demoparty no Garoa Hacker Clube e diz que pretende fazer uma mini-oficina de emulação. Ele recebeu a demo dos argentinos do grupo PVM e a validou no emulador; também cogitou rodá-la num C64 real com um emulador de floppy via Arduino. Depois divulgou a demo: um music disk de C64 com músicas brasileiras em chiptune, com uma mensagem dedicada aos amigos do Garoa, com vídeo e repositório no GitHub.
Felipe compila o MAME (só o driver da SEGA Y-Board) num Raspberry Pi 3 com Debian. A compilação só passou depois de configurar 1 GB de swap comprimido com ZRAM. O MAME rodou sob o X com desempenho ruim. Felipe recompilou a SDL2 com aceleração por hardware e tentou usar o framebuffer sem X via DirectFB, compilado no próprio Pi; a tentativa terminou em segfault. Ismael Luceno observou que a SDL 1.2 suporta fbdev diretamente e a SDL 2 não. Também se discutiram displays LCD pequenos (320x240) para a réplica, o limite de desempenho de displays via SPI e o uso de frameskip.
Felipe aponta como tarefa pendente de emulação de hardware nacional o "Scopus Spectrum ED, 1985".
Alexandre Villares compartilha uma análise de arqueologia de software do Spacewar!. Felipe anuncia o MAME 0.193, que inclui uma contribuição sua, e menciona contribuições recentes de outro brasileiro, Wellington Uemura.
Alexandre Villares comenta que o código do Lisa seria publicado, e Felipe encaminha a notícia de que a Apple liberaria o Lisa OS como código aberto em 2018, além de mensagens sobre novas versões do GS/OS com correções de bugs.
Ismael Luceno pergunta se o código do emulador de qmusica será submetido ao MAME. Felipe responde que acha que já enviou e que é possível submeter.
Felipe monta uma réplica fiel da placa de decodificação de opcodes da CPU do Patinho Feio (USP, 1971), toda soquetada para chips TTL da família 74. Ele acrescenta uma placa extra, que não existia no original, para mostrar em LEDs os sinais de entrada e saída do módulo. Um erro de layout que o DRC já havia apontado deixou pontos de aterramento soltos e exigiu 33 remendos, com possível revisão B da PCB. A placa terminou funcionando.
Guilherme Kenzo retoma o projeto de entrevistas e pede os contatos que Felipe já tem. Felipe lista nomes de professores e engenheiros ligados à história da computação na Poli (Edson Fregni, João José Neto, Edith Ranzini, Stephan Kovacs, Guido Stolfi e outros).
Felipe e Affonso, estagiário do acervo de computadores da Poli, tentam usar um Scopus Nexus 2600 que boota mas não aceita digitação. DQ, que participou do projeto do BIOS e do sistema operacional do Nexus 1600, explica que a interface de teclado não segue o padrão da IBM (usa comunicação assíncrona com uma USART 8251) e que só funciona com o teclado da Scopus. Felipe extrai as duas ROMs de 8 KB e as carrega no driver de IBM 5160 do MAME, que fica em tela preta com um apito constante. Nas fotos, DQ identifica a controladora de floppy (NEC D765) e a placa de vídeo com MC6845, padrão CGA, com acesso sincronizado à memória de vídeo, e diz que uma placa com 8255 lhe parece uma controladora de HD.
Affonso mostra itens que chegaram ao acervo: uma teletype com etiqueta do L.S.D. (Laboratório de Sistemas Digitais da Poli), mais um terminal Lepus 200, outro terminal Scopus, um analisador lógico, um teclado Scopus que ele acredita ser o do Nexus e caixas de disquetes de 8". Felipe propõe usar a teletype para ler fitas do Patinho Feio ou ligá-la à réplica do painel do Patinho Feio com o computador emulado, e extrair as ROMs do Lepus 200 para compará-las com um dump anterior.
Affonso e Felipe compartilham dois processadores construídos com componentes discretos em grande escala: o MOnSter 6502 e o Megaprocessor.
Com o teclado Scopus, o Nexus 2600 boota no IBM PC-DOS 3.3, com Norton Editor, um compilador PL/M (ISIS86) e jogos como Alley Cat e Zork I. DQ explica que o Nexus não tem BASIC em ROM: a Scopus obteve da Microsoft os fontes do BASIC 8080 na época do CP/M e os converteu para o 8088.
DQ ensina a usar o DEBUG.COM para gravar regiões de memória em arquivo, e Felipe verifica que um dos dumps anteriores tinha bytes errados. No MAME, o BIOS escreve em portas fora do mapa de I/O padrão do XT (D550h, E140h e outras). DQ sugere que D550h selecione o clock entre 4,77 e 8 MHz: no Nexus 1600 a troca era feita por dip switch e no 2600 por uma combinação de teclas. Os valores 1234h/5678h em 0040:0072 foram identificados por DQ como sinalização do Ctrl-Alt-Del, com apoio do IBM PC XT Technical Reference.
DQ conta que a primeira versão do SISNE (SIstema operacional do NExus) foi escrita num compilador Pascal com partes em assembler. O SISNE era o sistema oficial, mas muitos usuários rodavam PC-DOS ou MS-DOS. Segundo DQ, o nome tem ligação com o Patinho Feio por meio de Edson Fregni.
Para preservar o HD do Nexus, Affonso pergunta se um emulador de drive Gotek funcionaria; Felipe sugere um programa que envie os setores pela porta serial, e DQ menciona um programa de comunicação para DOS ou um programa digitado no DEBUG. Os dumps de ROM feitos com o DEBUG foram transferidos por disquete 5 1/4 e Gotek; a ligação do Gotek direto ao Nexus deu seek error. Affonso aponta relatos de uso do firmware do HxC.
O Nexus passou a apitar sem parar e a não reconhecer o HD. Affonso descobriu que a montagem do teclado estava desalinhada, travando teclas, e que o cabo tinha mau contato; o problema do HD foi um erro dele próprio. Felipe nota que a ROM do teclado ainda não foi extraída. Também se discutiram o relé de click, que segundo DQ é acionado pelo firmware do teclado, a ideia de usar samples no MAME para reproduzi-lo e o uso de vídeo composto da CGA pelos jogos da Sierra, que no Nexus (só RGB) aparecem com poucas cores.
Affonso encontra no depósito uma peça com o logo da Scopus que parece ser uma interface de impressora. Felipe e DQ falam da Spectrum, que fabricou clones de Apple II (MicroEngenho e Spectrum ED), e de seus sócios; DQ observa que Spectrum e Scopus trabalhavam de forma independente. Um Spectrum ED foi resgatado do centro de reciclagem da Poli. Felipe menciona o Solution 16 de Sebastião, que estava no depósito do Garoa.
Affonso encontra no acervo um equipamento de 1974, bem conservado, que Felipe identifica como uma leitora de fita perfurada Facit 4021. Felipe propõe usá-la para digitalizar fitas do Patinho Feio e ligá-la ao emulador. Affonso escaneia os manuais (operação e Technical Description) e os publica no Internet Archive. Também é mencionada a futura doação do Prológica Solution 16 de Sebastião ao acervo.
Ismael Luceno propõe projetar um dispositivo USB que dê porta paralela, com bom desempenho, a PCs e laptops modernos, por não ter encontrado nada adequado.
Ricardo Bánffy procura arte em caracteres de Videotexto de livre reprodução, e Felipe indica a demo "Nothing but PETSCII" do Commodore 64.
Felipe organiza uma visita ao acervo da Poli com Sebastião Barreto, DQ e Affonso e pede a Sebastião que leve suas fitas perfuradas da época do Patinho Feio, para lê-las e ver o que roda no emulador. Depois da visita Felipe publica fotos e vídeos; Ricardo Bánffy comenta o som do ASR-33. Felipe nota que a caixa da leitora Facit 4021 traz o nome do prof. Hélio Guerra. Em seguida publica o repositório Facit4021, observa que o logotipo da Facit é idêntico ao da Electrolux (a Facit foi vendida à Electrolux em 1973, segundo a Wikipedia) e conta que gravou um episódio do Happy Hacking Video Blog sobre a leitora.
Felipe e Affonso montam uma tabela de prioridades e escolhem três projetos. O primeiro reúne itens do Patinho Feio: ler as fitas de Sebastião Barreto, rodá-las no MAME e integrar a Facit 4021, a teletype e a réplica do painel. O segundo é a restauração do CP-500. O terceiro é extrair as ROMs restantes e a imagem do HD do Nexus 2600.
Felipe publica um branch do MAME para o Nexus 2600 e os dumps do BIOS v5.03 e da ROM do teclado. Affonso rastreia a inicialização do BIOS até a escrita na porta D550h e a chamada para um endereço vazio onde a execução quebra. DQ explica que a porta 60h é o registrador de dados da 8251 do teclado e a 61h simula parte do Port B da 8255. Segundo ele, a porta de clock controla um MUX entre 4,77 e 8 MHz. Ele também comenta as decisões de projeto da Scopus.
A partir do monitor de fósforo verde do Nexus, o grupo discute a disponibilidade de monitores coloridos. Com base na revista Byte, DQ afirma que a placa CGA saiu em 1981 com o PC, mas o monitor colorido da IBM só em 1983, com o XT. Ricardo Bánffy compara a qualidade do texto na CGA e na MDA e cita a Hercules. DQ relembra os testes de compatibilidade na Scopus com o jogo Sailing, cuja proteção contra cópia falhava a 8 MHz.
Eduardo Loos mostra a foto de um protótipo de disco em cartucho da Univac, de 1966, com 2,2 MB.
Affonso fotografa a placa-mãe do Nexus e encontra quatro PROMs TBP28L22N. Felipe sugere montar um leitor com Arduino, já que o programador MiniPRO não lista esse chip. DQ supõe, a partir das etiquetas, que CsIBM decodifique os endereços de I/O compatíveis com o IBM PC, CsScopus os endereços próprios da Scopus, e que a PROM marcada Ram selecione os chips de RAM.
Ronaldo se apresenta como colecionador e conta que descobriu o formato das fitas de 300 baud do Astrocade. Ele escreveu ferramentas para ler o áudio e converter programas tokenizados para texto, o que permitiu recuperar programas com cópias antes ilegíveis, hoje no Bally Alley. Felipe sugere um relato no Fórum Fiozera e um backup no Internet Archive, e avisa que o grupo tem log público.
Ronaldo sugere embutir no aparelho uma interface Arduino/USB; Felipe responde que já ligaram um Arduino à leitora, por fora, pelo conector da placa #2. Felipe relata erros periódicos de leitura (a cada 7 a 9 bytes, um byte é perdido e outro duplicado), que atribui a um problema mecânico. Felipe explica que as fitas usam ASCII de 7 bits com o bit mais alto sempre ligado e furos menores de tracionamento/sincronismo, e que o buffer interno da leitora é de 3 bytes.
Entram no grupo Arkinux, que escreveu análises de jogos para revistas como Micro & Vídeo e MSX Micro e já publicou digitalizações de revistas, e Leonardo Roman.
Felipe passa a organizar no repositório EmuHC os projetos de emulação e história da computação para a USP. Leonardo Roman oferece emprestar sua KryoFlux, interface USB que captura o fluxo de dados de disquetes. Felipe aponta a limitação de o firmware não ser livre, como no Gotek e no MiniPro.
Felipe anuncia o MAME 0.194, que inclui uma contribuição do grupo marcada como NOT_WORKING. O vídeo e a interface serial já funcionam, mas falta emular o teclado.
Felipe relata a visita, com o prof. Fernando Redigolo e Affonso, ao prof. João José Neto. Ele contou que o prof. Orsini, que não sabia programar, aprendeu BASIC em um dia e corrigiu num fim de semana um programa de análise nodal para o HP2116B; João José Neto transcreveu as correções numa nova fita perfurada para enviá-las ao autor. Felipe também aponta onde ficam os logs públicos do grupo.
Felipe encaminha o relato de Augusto Almeida, que recebeu a versão colorida do Taito Speed Race, um jogo sem CPU, e pretende restaurá-lo. Felipe menciona seu projeto de transcrever para o KiCad os esquemas do Gran Trak 10 da Atari, que também não tem CPU e usa ROM só para os gráficos.
Partindo de como computadores sem ROM davam boot, Felipe explica o processo do Patinho Feio. O operador insere pelas chaves do painel um micro-pré-loader, que lê um loader de fita, e a área F80–FFF pode ser protegida contra escrita. A sequência do micro-pré-loader foi lembrada pelo prof. João José Neto. Felipe afirma que a memória do Patinho se apaga ao desligar; Ronaldo diz ter ouvido que a memória de ferrite não é volátil. Aylons Hazzud primeiro diz que ela é volátil, mas em seguida se corrige citando a Wikipedia: é não volátil, com leitura destrutiva. Leonardo Roman mostra o RIM Loader impresso no painel do PDP-8.
Affonso remove as quatro PROMs TBP28L22N da placa-mãe do Nexus e extrai seu conteúdo com um leitor feito com um Arduino emprestado por Felipe. Ele publica os quatro dumps e o código do leitor. Felipe revisa o código e sugere publicá-lo num repositório com licença livre.
Felipe publica o vídeo "Lendo Fitas de Papel em 1974 - EP. 8", sobre a leitora Facit 4021, e abre um tópico sobre a leitora no Fórum Fiozera. Ronaldo sugere um shield de interface direta com o slot da máquina.
Affonso mostra duas placas de vídeo profissionais Targa (uma Targa 16) que pertenciam ao pai, com disquetes que pretende extrair na USP. Felipe recomenda testar antes o drive com discos virgens para não danificar os originais.
Lincoln (L C) se apresenta e se oferece para refazer o site arqueologiadigital.org. Felipe descreve o site como um índice comunitário, menos dependente da USP que o futuro site institucional do museu, para os repositórios, os itens do Internet Archive, os posts do Fiozera e os vídeos, com curadoria manual e páginas por projeto. Combinam um site estático (Jekyll/GitHub Pages ou outro gerador), e Lincoln recebe acesso de escrita ao repositório.
O Solution 16 doado por Sebastião ao museu tenta dar boot mas falha mesmo após a limpeza dos cabeçotes: um drive dá erro de indexação e o outro, "track not found". Leonardo Roman informa que as ROMs já têm dump no Datassette, mas sugere extrair as locais para comparar, e observa que ninguém tem o sistema SO-16. Affonso retira a placa e encontra uma ROM 27128 soldada e outra soquetada.
Affonso resolveu o problema do monitor de um Mac Color Classic do museu da USP, mas a máquina ainda fica numa tela branca esperando disquete. Felipe ofereceu ao museu uma caixa completa do Novell NetWare, com disquetes e manuais. Affonso sugeriu uma exposição sobre a evolução da distribuição de software.
Marcus anunciou o episódio piloto do MICRO80 no YouTube e, depois, a Espectro #3 do blog Planeta Sinclair e a gravação do segundo episódio. Contou também que a campanha de financiamento no PADRIM não estava avançando.
Felipe compartilhou uma coleção de manuais e esquemáticos de monitores de arcade e comentou os avisos de alta tensão e de proteção contra raios X.
Foi compartilhada uma reportagem do Gizmodo sobre um engenheiro que restaura uma grande coleção de computadores antigos. Leonardo Roman comentou que acompanha o canal dele, incluindo as restaurações do Alto.
Felipe propôs encontros recorrentes de pesquisa prática sobre o Patinho Feio, provavelmente no Garoa Hacker Clube, e comentou um vídeo de Affonso publicado na página do LASSU-USP. Ele contou também que viu no MIT uma Lisp Machine em wire-wrap. Contou ainda que encontrou por acaso o professor Edson Fregni, que guarda placas originais do Patinho Feio e pretende doá-las a ele. Ronaldo, que mora no RS, disse que dificilmente poderia ir ao Garoa.
Felipe compartilhou o memo 528 do MIT sobre o processador CADR, o esquemático do CADR4 e o manual da Lisp Machine (o 'Chine 'Nual), e lembrou que essa máquina está ligada à origem do Projeto GNU.
Affonso rodou Zork num monitor de fósforo verde no Nexus 2600. A versão pelo interpretador frotz funcionou, mas o ZORK1.COM original mostrava artefatos no texto. Leonardo Roman e DQ os identificaram como códigos ANSI sem suporte. DQ testou no DOSBox as versões da GOG e do infocom-if, que rodaram sem problema. Ele então citou a nota do NNANSI: a versão compilada é para 80286 ou superior com teclado AT e VGA, e precisa ser recompilada para outros sistemas.
Affonso começou a escrever em Borland C um programa que lê o HD do PC-XT Scopus Nexus 2600 e envia os setores pela serial a outro PC. Os testes eram feitos no emulador de XT do MAME. Felipe sugeriu o DOSBox para editar o código fora do emulador, e Affonso respondeu que já fazia isso. Felipe pediu que o código fosse para um repositório git, e Ismael Luceno ofereceu ajuda. Affonso publicou o repositório xt-hd-imager e conseguiu enviar um setor do disco emulado para um terminal serial no MAME.
Felipe divulgou a FlashParty, marcada para 21 a 23 de setembro de 2018 e organizada pelo grupo PVM, que mandou uma demo para a Garoa Demo Party 2017. Ismael Luceno disse a princípio que talvez pudesse ir. Quando Felipe voltou a divulgar o evento em junho, Ismael respondeu que estava em Montevidéu e que em setembro já não estaria na região.
Felipe contou que o professor Guido Stolfi ligou o sintetizador, que está funcionando parcialmente, e que o demonstrará num evento de equipamentos eletrônicos antigos. Felipe pretendia levar os cadernos ao professor na semana seguinte à sua volta ao Brasil. Ele compartilhou ainda um PDF de apresentação do professor, e Affonso disse que pretendia ir ao evento.
Affonso compartilhou fotos de um evento daquele dia, entre elas fotos ao lado de Guido Stolfi. Ele contou que estava lendo os cadernos do professor escaneados por Felipe.
A conversa começou no privado e depois foi encaminhada ao grupo. Nela, Affonso observou que a DECwriter e a Teletype estão fixas no código do driver do Patinho Feio no MAME. Os dois decidiram criar um sistema de slots de I/O, tomando como modelo hp80_io, rs232 e centronics. Para isso foi criado o fork ArqueologiaDigital/mame com o branch patinhofeio. Felipe explicou o fluxo de trabalho: forks pessoais, feature branches, remotes, fetch, rebase, pull requests e code review. Affonso abriu o PR #1, com um primeiro rascunho baseado no código da porta paralela Centronics.
Felipe atualizou a página principal do site arqueologiadigital.org. Ele removeu o feed e alguns efeitos visuais, gerou miniaturas JPG para o slideshow e corrigiu o link para os logs do grupo. Citou o Arcade Blogger como referência para o site.
Affonso e Felipe discutiram as instruções de E/S (FNC, SAL, ENT) descritas no Montador do Patinho Feio e onde ficavam os flip-flops de status, interrupção e controle. Consultaram as pranchas do livro de Fregni e a tese de 1972. Felipe viu na tese que as placas FIN-8 não têm flip-flops e concluiu que eles ficavam nas placas de interface de cada periférico. Disse que essas placas são consideradas perdidas, mas que talvez ainda estejam no Patinho Feio guardado na diretoria da Poli. Pelo código da fita #011 (FNC /68 e /78, modo série para os canais 6 e 7), Felipe suspeitou que o sintetizador usava mais de um slot de I/O. Ele também contou que transcreveu boa parte dos esquemáticos para KiCAD, o que permitiu montar a réplica da placa CDE-3. Por fim, apontou num circuito da interface do sintetizador um oscilador de 100 kHz e shift registers.
Ao retomar o código de I/O, Affonso resumiu o que precisa ser escrito: a interface de E/S do Patinho e uma placa de interface externa para teste. Felipe sugeriu refatorar a emulação atual para o sistema de slots do MAME, mantendo funcionando o hello world que imprime na Teletype.
Felipe apresentou o grupo a um novo membro: um grupo de estudos para a preservação de hardware histórico, que tem o resgate do Patinho Feio como um dos projetos principais. Ele indicou também o endereço público do histórico das conversas.
Affonso perguntou de quais terminais Scopus já havia dump de ROM e disse que faria o dump dos recém-chegados. Felipe lembrou que mais dumps permitem achar versões diferentes de firmware ou EPROMs corrompidas. Affonso tentou ligar o terminal Scopus TVA80 a um PC por adaptador USB-serial e converteu o cabo em cross, sem sucesso. O conector tem só os pinos 1 a 4, 7, 18, 20 e 25. DQ listou os sinais clássicos do RS-232 e levantou a hipótese de elo de corrente. Também se falou em montar uma bancada de restauro na reserva técnica.
Silas, Affonso e Felipe falaram sobre portas seriais em computadores atuais. Affonso contou que seu adaptador USB-serial funcionou no Ubuntu sem instalar nada e citou um chip Prolific. Felipe disse que a maioria usa chip FTDI, com driver livre, e que usa esses adaptadores no Trisquel.
O programa de transferência funcionou no Nexus real. A cópia completa levaria cerca de 4 horas, então Affonso compartilhou antes um resultado parcial (nexus.out), ainda sem três cabeças. Passando o comando strings, Felipe encontrou o código-fonte do leitor. Encontrou também textos de um programa que diz só poder ser executado no Nexus e lista velocidades iniciais do processador de 5, 8 e 12 MHz, e Affonso perguntou se seria da BraSoft. Felipe observou que o programa serviria para validar no MAME quais portas de I/O trocam a velocidade da CPU. Os caracteres acentuados apareciam quebrados. Felipe perguntou se a rotina descartava o que não fosse ASCII de 7 bits, e Affonso respondeu que não e atribuiu o efeito à codepage do DOS.
Felipe anunciou que ia instalar um cartucho Neo Geo de 150 jogos no arcade da Sala de Jogos do Garoa Hacker Clube.
Felipe compartilhou os anúncios do MAME 0.196, 0.197 e 0.198 e depois o texto do 0.199. Essa versão adiciona El Fin Del Tiempo, o hack Titan e bootlegs como Come-Cocos e Gran Rally, e melhora a emulação de drives de disquete, entre outras mudanças.
Affonso publicou no fórum Fiozera um relato do imageamento do HD do PC-XT Scopus Nexus 2600. Como usuário novo do fórum, ele só podia anexar uma imagem, e Felipe se ofereceu para publicar as outras fotos como resposta.
Felipe compartilhou a notícia de um hacker que rodou jogos de SNES num NES usando um Raspberry Pi dentro do cartucho. Leonardo Roman explicou que o NES funciona ali basicamente como placa de vídeo.
Felipe compartilhou uma reportagem da Bloomberg sobre a compra do GitHub pela Microsoft e um tweet do GitLab.
Affonso publicou a imagem do HD no Internet Archive com duas listas: a dos bad sectors (preenchidos com zeros) e a dos setores lidos só depois de várias tentativas. Nem o parted, nem o mount, nem o MAME conseguiram usá-la. Analisando os bytes, Affonso viu que nenhum valor passava de 7F, ou seja, um bit de cada byte se perdia na serial. Ele corrigiu o envio e preparou uma nova transferência.
Felipe contou que estava jogando Mega Drive no Raspberry Pi com Lakka/RetroArch e que encontrou o SGDK para programar o console. Para GNU/Linux, apontou o gendev como a melhor opção.
Felipe compartilhou o documento 'Improving Computer Science Education in Brazil' (1972) e fotos de trechos dele, entre eles um que menciona o Patinho Feio.
Felipe compartilhou o repositório ArqueologiaDigital/tk3000e. DQ mostrou numa foto seu TK3000e funcionando na BSidesSP, junto a um COSMAC ELF, e Affonso disse que o exemplar do museu parece não funcionar.
Mesmo depois de corrigido o erro de paridade, a nova imagem não dava boot no emulador de XT do MAME. Ronaldo e DQ ajudaram a investigar. DQ orientou Affonso a ler o primeiro setor no Nexus real com o DEBUG e a INT 13h e a comparar com a imagem. Os dados batiam, e os bytes B6 6D foram identificados como resto da formatação. O problema era a ordem de leitura: o programa incrementava setor, cilindro e cabeça, e a convenção do DOS é setor, cabeça e cilindro. Com a imagem reordenada, ela deu boot no DOS 3.3 do Nexus dentro do MAME. Affonso compartilhou a imagem no grupo em .img e .chd.
Ronaldo encontrou à venda no Mercado Livre um rolo de fita magnética de um IBM 4381 que teria vindo de um museu, e DQ indicou uma reportagem sobre o museu de informática de Mário Motta. Ronaldo e Felipe defenderam que fitas assim tenham os dados copiados em vez de virarem objeto decorativo.
Affonso compartilhou um vídeo do painel de tempo e pontuação da réplica do Golly Ghost, gravado com Felipe. Depois Felipe mostrou os solenoides sincronizados com o jogo. O MAME, rodando num laptop, emula a placa Namco System 2 e envia à console o estado de displays, LEDs e solenoides. Um script Python repassa esses dados pela serial a um Arduino Mega, que multiplexa os displays e aciona relés. Ronaldo e Felipe discutiram o escopo de preservação do MAME: fidelidade do modelo, documentação elétrica e comportamento não determinístico. Felipe registrou que as armas do jogo, com mecanismo de recuo por solenoide, também foram usadas em Steel Gunner e Gunmen Wars. O projeto foi apresentado numa palestra.
Ismael Luceno contou que, com Francisco Castro Regueira, está fazendo ferramentas para analisar código de BIOS a partir de um dump da Samsung DeskMaster 486S/25Q. Por enquanto, a ferramenta é um decompilador um pouco mais inteligente que o objdump. A ideia é usá-lo como base para caracterizar o código automaticamente pelos opcodes.
Felipe compartilhou um projeto de Pong para osciloscópio. Depois montou no Garoa um circuito com um oscilador de 25,175 MHz e um contador de 8 bits usado como divisor de frequência, e conferiu as frequências num frequencímetro. Ele explicou a diferença entre um cristal e um oscilador encapsulado de 4 pinos, e Leonardo Roman indicou um vídeo do EEVblog que mostra um desses osciladores por dentro.
Felipe explicou que o Garoa Hacker Clube não costuma oferecer cursos e funciona como um clube onde as pessoas tocam projetos próprios. Ele se ofereceu para mostrar o espaço a quem quisesse conhecê-lo. Alexandre Villares lembrou a Sala de Jogos, e Felipe compartilhou o link da wiki.
Felipe comprou o livro 'How to design & build your own custom TV games', de David L. Heiserman. DQ e Hugo lembraram das revistas de eletrônica guardadas no Garoa, como a Saber Eletrônica, e das Dr. Dobb's de DQ, e DQ indicou o volume 1 da Dr. Dobb's no Internet Archive.
Affonso abriu um analisador lógico HP 5000A no museu e fotografou sua construção modular e as placas. DQ compartilhou a edição do HP Journal de outubro de 1973, e Leonardo Roman, a página do manual de serviço. Affonso deixou para outra hora a ideia de ligar o aparelho. Felipe também desaconselhou, lembrando que ele tem quase a mesma idade do Patinho Feio.
Ronaldo recebeu um drive de 8" e descreveu sua placa, o motor de passo de 24 V e os conectores. Ele concluiu que o modelo (Flexidisk DS 800) é uma réplica do Shugart SA800, com conector de borda de 50 pinos. Felipe contou que o acervo da Poli guarda um drive de 8" novo e discos com rotinas de boot e o sistema operacional do computador COBRA. Ronaldo propôs trocar disquetes para obter uma referência de alinhamento. Affonso fotografou o drive do acervo, um Tandon, e encontrou a especificação do TM848. A conversa passou ainda por conectores de força, medição da rotação com luz estroboscópica ou pelo furo de índice e o motor DC citado no manual. DQ contou que guarda um disco de 8" formatado em CP/M-80.
Felipe propôs encontros periódicos do grupo, talvez quinzenais, no Garoa ou na USP. Affonso votou pelo Garoa. Ficou combinado que os encontros seriam no Garoa e que iriam à USP só quando fosse preciso examinar itens do acervo. Felipe sugeriu quintas-feiras a partir das 19h30. Affonso propôs um issue tracker para organizar as atividades, e Felipe apontou o do EmuHC como modelo.
Felipe anuncia o primeiro encontro do grupo no Garoa Hacker Clube, numa quinta-feira, e Silas divulga um encontro de retrocomputação no Wikilab. Discute-se a periodicidade dos encontros: o grupo já havia se reunido uma vez na USP, mas nunca no Garoa.
FTMaciel descreve a restauração de uma placa oxidada pelo vazamento da bateria NiCd: lavagem com água e vinagre, neutralização com bicarbonato, troca de componentes e verniz. Affonso planeja testar o procedimento numa placa de 386 sem conserto.
Affonso compartilha o livro Black Art of 3D Game Programming e mostra um Hunt the Wumpus que escreveu para o modo VGA 13h (320x200). Felipe relata que tentou gerar 800x600 a 72 Hz em Verilog numa FPGA, sem sucesso, e pretende testar 640x480 a 60 Hz. DQ observa que o livro não detalha a VGA e cita o livro de Abrash sobre o Modo X.
Uma busca no código do MAME mostra 23 jogos do tipo NETLIST_CPU, feitos com lógica discreta em vez de CPU e simulados numericamente pelo MAME, com desempenho baixo. Felipe apresenta a libstickbridge, biblioteca em C que liga software (possivelmente o próprio MAME) a hardware instanciado na FPGA do iCE40 ICEStick via SPI sobre USB. Gustavo Romero e Affonso discutem placas PCI ou ISA com FPGA ou CPLD.
Affonso traz do CEDIR um monitor composto de fósforo verde e testa um TK 3000 //e cuja fonte está queimada. O grupo sugere uma fonte de PC (AT, ou ATX antiga com -5 V). O micro funciona na TV, mas no monitor perde sincronismo, e um DVD ligado ao monitor mostra o mesmo efeito. DQ compartilha o manual de instalação e Leonardo Roman explica as saídas RF e composta PAL-M. O monitor acaba queimando durante os testes. Em paralelo, comenta-se o pano usado na frente de alguns CRTs para melhorar o contraste.
Felipe pergunta como entender o circuito interno de um chip a partir do esquemático do datasheet. Aylons Hazzud recomenda identificar blocos básicos, como o amplificador diferencial, a fonte de corrente e o espelho de corrente.
Felipe transcreve, num branch do seu fork do MAME, os esquemáticos do Gran Trak 10 (1974) para o sistema de netlist. A correção de um flip-flop que gerava o VSYNC errado elimina uma linha vermelha no topo da tela; depois, a correção do roteamento de um sinal de clear no gerador de sinais de vídeo melhora o resultado visual, e o sprite do carro e seu posicionamento começam a aparecer. Um participante sugere o simulador Qucs, que Felipe considera trabalho dobrado, e compartilha o service manual da Atari.
Affonso encontra no depósito fichas telefônicas ainda na embalagem; pretende abrir uma para exposição e manter outra lacrada. Também mostra um aparelho que funciona e usa notação polonesa reversa. O grupo explica o uso das fichas e as diferenças regionais entre elas, além da origem de expressões como "cair a ficha" e "deu tilt".
Felipe apresenta na UFABC uma palestra sobre o resgate histórico do computador Patinho Feio. Participantes da atividade, entre eles membros do WikiLab da UFABC, entram no grupo e se apresentam.
Junto com o anúncio do MAME 0.200, Felipe diz que espera ter o Gran Trak 10 na versão seguinte. Ele abre o pull request #3795 com grande parte dos esquemáticos do jogo em netlist, e o MAME 0.201 sai com essa documentação parcial do circuito, que ele pretende continuar.
Um participante pergunta se Felipe fez um esquemático do Pense Bem. DQ aponta a página da wiki do Garoa, e Felipe, autor da página e do repositório garoa/PenseBem, diz que é um rascunho incompleto de cinco anos atrás e oferece o projeto a quem quiser continuá-lo. O microcontrolador é um Z8 com ROM de máscara; discute-se o decapping do chip para extrair o firmware e o fato de o Pense Bem ser uma réplica do Smart Start da VTech, cujo dump Felipe nunca encontrou. Felipe conta que fez um simulador web antigo junto com Leonardo Pereira.
Felipe publica o PortableWumpus, versão em C portável do Hunt the Wumpus de Affonso, e organiza no Garoa oficinas de programação para Mega Drive. Ele anuncia que mostrará como montar o GCC cruzado para 68k e, numa sessão de agosto, leva o console com um cartucho Everdrive para testar o código no hardware real. DQ indica jogos clássicos em BASIC para o RC2014. Em outubro, Luciana Marques lembra que o jogo de Affonso já havia rodado no console.
Felipe compra por engano o Mega Drive de 2017 da TecToy, um Mega Drive num chip baseado na tecnologia da ATGames, com chip de som defeituoso, no qual só cerca de 4 dos seus 10 cartuchos funcionaram; depois compra um modelo original com placa VA3. Ronaldo atribui parte das falhas à oxidação dos contatos dos cartuchos. FTMaciel mostra um clone malaio e o grupo cita emuladores.
Rodrigo Tadeu encontra erros no simulador a partir da pergunta 16 do livro 10, e Leonardo Roman aponta que o programa 6 também falha. DQ analisa o código (dez padrões de 16 respostas) e conclui que o gerador não foi decifrado. O grupo propõe ampliar a suíte de testes com as respostas dos livros ou ler todas as combinações do chip original por meio de um Arduino.
Affonso projeta um conversor para ligar um drive de 8 polegadas TM848, do acervo da USP, a uma interface de disquete padrão, tratando das diferenças em drive select e motor enable e do sinal que chaveia a escrita entre trilhas altas e baixas. O grupo alerta sobre a fragilidade dos discos antigos e o risco de a cabeça danificá-los.
Affonso salva do descarte na USP um monitor profissional PVM-1350, que funciona. Com um cabo BNC improvisado, liga nele o TK3000. Os outros comentam a qualidade dos tubos Trinitron, e Felipe conta que usou um monitor igual na Poli para testar um MSX em FPGA.
O TK3000 IIe de Affonso mostra apenas "TK3000IIE" e um ç, e o teclado não responde. O grupo usa o autoteste (Ctrl + bola cheia + Reset), compara com os TK3000 de Ronaldo e DQ e consulta o esquema elétrico. Com isso, analisa o 74LS259 em H12 e o chip custom de E/S em H6. Affonso simula teclas curto-circuitando pinos do conector do teclado e chega a supor que a placa-mãe está boa, mas o curto equivalente à tecla Mode não produz efeito, e a causa fica em aberto. Também é indicado o grupo Apple II Forever.
Ana Cunha, produtora cultural no Rio de Janeiro, se apresenta como integrante do Labogad, laboratório de preservação e gestão de acervos digitais da Unirio, onde começa uma pesquisa sobre o choro.
Uma participante pretende fazer decapping de CIs com ácido nítrico em laboratório. O grupo recomenda supervisão treinada, proteção dos olhos, cuidado com gases NOx e a diluição correta, e cita um acidente num laboratório da UFRJ. Gustavo Romero lembra que a lei brasileira permite a engenharia reversa de CIs para pesquisa e para verificar violação de patentes.
Felipe estuda hinting TrueType e publica um descompilador da linguagem VTT Talk, da Microsoft. Ele comenta que as ilustrações do manual da Apple estão desatualizadas e recomenda o capítulo 3 do manual como introdução.
FTMaciel oferece um clone de Mega Drive funcionando, do tipo com chips clonados por engenharia reversa, para ficar no Garoa e servir às oficinas de quinta-feira. Felipe aceita e combina a entrega.
Felipe propõe um encontro do grupo no acervo onde Affonso trabalha, atrás da administração da Poli, para explorar as peças. Affonso não pode às quintas-feiras, e Felipe, que viaja em setembro, sugere uma data depois de 21 de setembro ou ainda antes do fim de agosto; nenhuma data é fechada.
Felipe compartilha o projeto Ambush TTL, de Grant Haack.
Affonso informa que o acervo é do projeto Paideia, do LASSU/CEDIR, na USP, e mostra as peças que chegaram: placas de vídeo e de som de PC e placas de Apple II, entre elas uma Mountain Computer Bus Expander II, uma ExpandaRAM e um relógio corroído. Emerson Moura identifica as placas, e são compartilhados o catálogo da Mountain de 1981 e uma página com os esquemáticos da caixa de expansão.
O grupo discute se os 8 slots do Apple II bastavam: DQ conta que usava 6 no seu Unitron Ap II, e Emerson Moura lembra que a Ford de São Bernardo usou Unitron até 1988. A conversa passa aos slots e subslots do MSX, a modelos raros com slots internos e aos "hidden MSX" sem logotipo.
Felipe compartilha um post intitulado The Simulation is Finally Complete! e um vídeo sobre a preservação do Electronic Voice Alert (EVA) da Chrysler.
A partir de uma reportagem sobre peças de museu em plástico que se desfazem, Felipe defende escanear em 3D os gabinetes dos equipamentos, como discutido numa issue do MAME. Ronaldo relata que os computadores da SGI estão muito frágeis, e Emerson Moura que gabinetes de Macs PPC esfarelaram por causa do ABS de má qualidade usado de 1991 até os iMacs.
Alexandre Villares prepara uma oficina de ASCII art com impressora matricial e procura fontes desse tipo de impressora. Felipe indica um projeto de um amigo, e Ronaldo descreve técnicas de conversão com subpixels, tabelas pré-calculadas e difusão de erro. Também é citado o trabalho pioneiro de Waldemar Cordeiro e Giorgio Moscati na USP.
Felipe compartilha a recriação da placa do Amiga 1200 a partir de fotografias. Aylons Hazzud observa que até os anos 80 quase todas as placas tinham duas camadas.
L. mostra um MSX2 empilhado (stacked board computer) inspirado num projeto russo e uma réplica em miniatura do NeXT Cube. Emerson Moura descreve o SimpleZ80 do ABC Makerspace/Wikilab, e DQ comenta o RC2014. Felipe diz que homebrew com tecnologia antiga é bem-vindo no grupo, embora não seja arqueologia.
O grupo discute como montar terminais burros: PiGFX em Raspberry Pi sem sistema operacional (sem suporte ao Zero W), RISC OS Pico, a interface de vídeo e teclado de Grant Searle, um terminal VGA para RC2014 e o shield TellyMate para Arduino. Também são citados vídeo gerado com ESP8266 e o plano de Ronaldo de fazer isso com STM32.
L. mostra um terminal de viatura policial Motorola MDT-9100T com 386SX, Windows 3.1 e memória flash no lugar do HD. Felipe sugere fazer o dump da flash e da BIOS para o MAME, e o grupo analisa fotos da placa (flash 28F020, Altera, slots). FTMaciel explica que o terminal usava rádio VHF/UHF e um cartão PCMCIA de criptografia.
Affonso mostra mais um clone de Apple II funcionando, e DQ comenta o estado dos disquetes de jogos que guarda. L. avisa que pode se desfazer de seus Apple II (IIc, TK3000, Unitron e outros), e vários membros demonstram interesse.
Felipe anuncia o MAME 0.202 e destaca que a versão traz trabalho do brasileiro Leonard Oliveira, de Brasília.
Silas conta que o Wikilab está restaurando um NEC 286F que funciona, mas tem o backlight queimado, e pergunta onde achar a peça e onde documentar a restauração. As sugestões são trocar o CCFL por LEDs, procurar lojas de sucata e documentar no Fórum Fiozera, onde Felipe publicou em português as threads sobre o Patinho Feio e um amigo dele fez uma versão em inglês.
A partir de um artigo sobre a história do MSX, o grupo discute o modelo de vários fabricantes. Ronaldo explica que os três VDPs listados no padrão MSX1 (TMS9918/9928/9929) atendem a padrões de vídeo diferentes (NTSC, PAL, PAL-M no Brasil), têm pinagem ligeiramente diferente e são iguais para o software. Ele também conta que escreveu em Blitz Basic um emulador de MSX1 para PC, bugado, suficiente para alguns jogos simples.
Felipe compartilha a análise do código-fonte do Aladdin para Mega Drive feita pela Video Game History Foundation e o artigo Bomb Jack Dissected.
Felipe comenta o lançamento de um emulador de C64 no Internet Archive. Ele conta que montou ali uma coleção de cerca de 4 mil demos de MS-DOS com DOSBox em JavaScript e que, quando sugeriu fazer o mesmo com demos de C64, Jason Scott respondeu que um emulador de C64 no site jamais aconteceria.
Felipe compartilha um vídeo sobre adicionar entrada RGB a uma TV de consumo e sugere usar a técnica para montar um chicote JAMMA.
Felipe recebe o livro de David L. Heiserman, de novembro de 1978, e compartilha um escaneamento provisório do capítulo 1. Affonso sugere usar o scanner de livros raros da Biblioteca Brasiliana para digitalizar livros e manuais do acervo, e o Centro de Preservação Histórica do Mackenzie é citado como alternativa. Alexandre Villares compartilha com Felipe um link sobre fontes Hershey.
Temas: Alley Cat em hardware mínimo e o clone PC-Retro (9), Patinho Feio (7), Videogames e vídeo em lógica discreta (6), Engenharia reversa e extração de ROMs (8), Computação brasileira e documentação (6), Programação para DOS e som no PC (6), Restauração, kits e réplicas (7), MAME, terminais e tipografia (6), Pinball e fliperamas (6), Notícias, eventos e museus (13)
Felipe propôs descobrir o subconjunto mínimo de hardware de PC que um jogo antigo usa e montar uma PCB com o jogo em EPROM, tomando Alley Cat como exemplo. Com o booterify ele gerou uma imagem de disquete inicializável e rodou o jogo no driver at386 do MAME. Ismael Luceno sugeriu mapear as interrupções usadas e indicou trabalhos de tradução binária via LLVM (um artigo e o mcsema). Felipe citou seu analisador de binários para o i8048 e para a máquina virtual do Another World.
Felipe adaptou o booterify para gerar uma ROM relocada, instalada no segmento 0xE000 e copiada para a RAM por um loader inserido por patch na BIOS. O jogo ficou com tela preta, preso em chamadas à interrupção 1Ah. A investigação apontou variáveis não inicializadas da BIOS Data Area, entre elas o contador de tempo em 0x46C–0x46F, e a necessidade de programar o RTC. Ismael Luceno indicou a Ralf Brown's Interrupt List.
Felipe visitou a Faculdade de Engenharia da Universidade do Porto para procurar professores interessados em história da computação e relatos sobre os pioneiros da área em Portugal, e publicou fotos da biblioteca. Um professor brasileiro da universidade se interessou pelo trabalho de coleta de informações sobre o computador da USP e quis que Felipe fizesse uma apresentação na faculdade. Os dois acharam que seria muito em cima da hora agendá-la antes da partida de Felipe.
Felipe encaminhou mensagens de Affonso Amendola com uma foto do Patinho Feio. Nelas, Affonso observava que o teletipo da foto é idêntico ao do museu e perguntava se o equipamento sob o computador era o leitor de fita. Felipe respondeu que provavelmente é o mesmo teletipo e que acha que sim, é o leitor de fita.
Silas, do wikilab, pediu ajuda com uma SGI Fuel (MIPS) que não liga, embora a fonte parecesse funcionar quando testada à parte. Foi apontado que a fonte pode falhar sob carga e que convém trocar os eletrolíticos. Silas observou que a fonte é específica da SGI e que a máquina é conhecida por problemas na fonte, e compartilhou um guia de reparo.
Ismael Luceno perguntou se alguém está trabalhando na velocidade de emulação do MAME, porque alguns cores que ele usa são lentos demais. Felipe lembrou de recompilação dinâmica para algumas CPUs, mas não sabia quem está envolvido.
Felipe publicou fotos de equipamentos antigos. Ronaldo indicou um vídeo de um scanner Crosfield 6250, e Felipe confirmou que o scanner da foto é desse modelo. Ronaldo supôs que o outro aparelho, sem marca, fosse algum equipamento de editoração. Quando Ricardo Bánffy noticiou a morte de Bill Godbout, Felipe comentou ter visto livros sobre o barramento S-100 na biblioteca da FEUP.
Felipe compartilhou um artigo da EFF sobre a ampliação da isenção do DMCA para a preservação de videogames.
Felipe compartilhou o anúncio do MAME 0.204, que permite rodar HP-UX 9 com X11 em um HP9000/370 emulado e traz progresso na emulação de workstations SGI e de terminais X. Ronaldo perguntou pela emulação da Indy, e Ricardo Bánffy citou o projeto UniBone.
Perguntado por Ismael Luceno sobre o port do Another World, Felipe disse que está parado. Ele contou que planejava retomar o desenho da PCB da placa JAMMA e que talvez prototipasse primeiro apenas o estágio de saída gráfica.
Felipe mostrou uma montagem em protoboard, feita só com lógica e sem microcontrolador, para gerar sinal de vídeo a partir de uma imagem gravada em EPROM. A montagem não funcionou; a ideia era chegar pelo menos a um shield VGA para Arduino. Ronaldo recomendou dividir o circuito em blocos (sincronismo horizontal e vertical, contador de endereços) e testar cada um separadamente.
Felipe recebeu com meses de atraso um exemplar extraviado do livro de 1978, ficando com dois, e desmembrou um deles para escanear as cerca de 550 páginas. Publicou os capítulos em PDF no grupo e pôs as imagens TIFF e o PDF completo no repositório ArqueologiaDigital no GitHub. Erin o ajudou a tratar as imagens com curvas de níveis no GIMP, e Felipe cogitou aplicar o tratamento a todas as páginas para reduzir o tamanho do PDF. Leonardo Roman processou as páginas no Scantailor e publicou no Datassette uma versão de 28 MB com OCR.
Erin Pinheiro tentou fazer um cabo para carregar programas em fita no Hotbit a partir do celular, conferindo a pinagem do datacorder em relação à do Expert. No laptop, o carregamento funcionou depois de desligar o equalizador, e a gravação do Hotbit para o celular também funcionou. Para compensar o volume baixo do celular, Erin pôs um resistor de 2k em paralelo com R4, mas o carregamento pelo celular continuou falhando.
Felipe compartilhou a foto de uma fita perfurada por volta de meados da década de 1970 na Escola Politécnica da USP.
Felipe contou ter comprado o kit PC-Retro, um clone de IBM PC, entregue na casa de um amigo nos EUA. Ele pediu ao RicBit que tentasse trazê-lo e, se não desse, pretendia buscá-lo em março, quando iria aos EUA para a conferência anual da Free Software Foundation.
Felipe compartilhou a foto de um Osborne e o vídeo de sua palestra "Arqueologia Digital" no MSX SP 2018. Erin fotografou uma plotter Sony, identificada como HitBit PRN-C41, e Felipe disse que gostaria de fazer o dump da ROM dela.
Felipe começou a converter o OCR do livro para LaTeX enquanto revisava o texto e apontou a placa-padrão da Radio Shack sugerida pelo autor para as montagens. Ele anunciou para 2019 um grupo de estudos de projeto eletrônico digital de videogames retrô no Garoa, com inscrição pelo wiki. Também começou a desenhar no KiCad a placa SourceBox do livro e criou um grupo de Telegram para o estudo.
Erin Pinheiro mostrou e restaurou uma calculadora Olympia CD90 Sigma de 1976, com display VFD, que era de sua tia. Alguns cantos da tampa do teclado estavam muito corroídos.
Foi compartilhado o trabalho de recuperação do SimCity para NES, que nunca foi lançado e só existiu como protótipo.
Foi compartilhada a notícia sobre a Video Game Font Preservation Society, do FontStruct.
Erin mostrou o protótipo "Snood Bloober" de Tube Time, um clone da Sound Blaster 1.0 planejado como open source, e FTMaciel citou um clone de AdLib do mesmo autor que tem para montar. A conversa distinguiu AdLib (OPL2), SB16 (OPL3 e DSP CT1341) e Covox/Disney Sound Source (DAC de resistores R-2R). Nano Gennari indicou o OPL3LPT, ligado à porta paralela, e também foi comentado o áudio por PWM no PC speaker.
O grupo discutiu o comando park dos tempos do XT e o estacionamento automático das cabeças em HDs posteriores, por mola ou usando o motor do eixo como gerador. Emerson associou o park aos HDs MFM/RLL. L. lembrou que seu XT tinha um Seagate ST238R (RLL), e Affonso disse que o museu tem exatamente esse modelo, que ele está tentando ler.
Felipe tentou portar um código do Affonso, que só compilava no Turbo C, para gerar um binário de MS-DOS com o GCC; parte da conversa foi encaminhada de outro chat. L. explicou que a opção -m16 exige um 386 e que o programa caiba em um segmento de 64 KB, e sugeriu Open Watcom ou DJGPP. Os erros vinham do assembly inline. Gustavo Romero recomendou -S -save-temps e -v, e com -m32 e o pacote libc6-dev-i386 a compilação avançou.
L. compartilhou o Snark Barker, réplica 100% compatível da Sound Blaster 1.0, e Erin confirmou que é o projeto mostrado antes como Snood Bloober, agora com outro nome. Erin indicou o texto do autor que explica o funcionamento da placa. FTMaciel publicou uma foto e contou que resolveu montar sua placa.
Foi indicado o site SMW Central, com tutoriais de patch em assembly do SNES e listagem comentada do código do Super Mario World. L. citou o editor de mapas Lunar Magic.
Felipe mostrou o antes e o depois da vetorização da arte do playfield da sua máquina de pinball baseada em Pinball Fantasies. Ele observou que vetorizar pixel art às vezes pede vetores em zigue-zague de 90 graus para manter o aspecto quadriculado.
Affonso disse que está fazendo uma versão EGA do Atoms. Ele explicou o modo de alta resolução da EGA, que escolhe 16 de 64 cores e aparentemente exigia o Enhanced Color Display. A conversa passou pelas paletas da CGA e pelas cores do Alley Cat.
Silas mostrou o backlight de um NEC 286F trocado por fita de LED e TNT, ideia de Muriel, estudante da UFABC. Silas disse que o resultado não ficou igual ao original, mas dá para usar. Felipe achou que ficou ruim nas fotos, e Leonardo Roman observou que faltou um material para dispersar melhor a luz. FTMaciel e Ronaldo sugeriram reaproveitar as películas difusoras de telas LCD quebradas, iluminadas pelas bordas.
Felipe compartilhou o livreto digitalizado "Scopus 30 anos", emprestado por DQ, que traz uma linha do tempo da empresa. Leonardo Roman questionou se o SISNE foi mesmo criado do zero, como diz o livro, ou se era cópia do MS-DOS; Ricardo Bánffy lembrou de sequências de bytes idênticas. FTMaciel comentou sobre profissionais de informática dos anos 70/80 ainda ativos no serviço público.
L. compartilhou um vídeo de uma Teletype ASR-33, e Felipe lembrou que há uma na Poli-USP, da época do Patinho Feio. Ronaldo advertiu que imprimir repetidamente no mesmo ponto pode furar o papel e marcar o rolo. Affonso disse que a do museu ainda precisa de conserto.
Felipe compartilhou um PDF com um resumo dos registradores da VGA. L. indicou uma versão web dos Norton Guides, guias de programação residentes (TSR) da época do DOS.
Foram compartilhadas reportagens sobre o resgate de máquinas de arcade em um galpão rural em Wisconsin e sobre um fliperama da Sega abandonado na zona radioativa de Fukushima. Erin mostrou uma pista de boliche que parecia não ter sido modernizada desde a década de 1990.
A partir do projeto PiDP-8, Felipe lembrou que o Patinho Feio faz 50 anos em 2021 e retomou o trabalho no esquemático em KiCad. Ele registrou no issue tracker do repositório dúvidas sobre o circuito, como a identificação do componente 4E da prancha XI.
Felipe compartilhou um comentário extenso recebido em um vídeo seu no YouTube e pediu opiniões. FTMaciel considerou o conteúdo técnico procedente e o resumiu como recomendação de trocar capacitores que podem estar secos. Affonso descreveu formas de testar capacitores, e Leandro Lameiro e L. citaram fontes do C64 que causam sobretensão.
Felipe apresentou o ExecTrace, um disassembler genérico em Python que analisa o fluxo de execução por busca em profundidade e separa código de dados. Ele foi criado para o bytecode do Another World e já tinha uma classe para o i8048 do Odyssey 2; a nova classe para Z80/MSX foi usada para desmontar o Galaga da Konami. Ao remontar o resultado, a ROM ainda diferia da original em alguns bytes.
L. compartilhou que a ROM interna do YM2413 foi extraída, o que permite uma emulação mais fiel. Erin explicou que se trata de uma tabela de dados com os operadores FM dos instrumentos e relacionou o chip ao VRC7 do Lagrange Point (Famicom).
Felipe compartilhou a conta historicalsource no GitHub e a notícia da publicação do código-fonte de todas as aventuras de texto da Infocom.
Felipe compartilhou a notícia de que a Nintendo derrubou um port de Super Mario para Commodore 64 que levou sete anos para ser feito.
No Garoa, Felipe instalou mais luzes no playfield da máquina de pinball usando um único controlador de matriz de LEDs 8x8 MAX7219, o que evita multiplexar por software ou usar vários shift registers. Ele publicou um vídeo do resultado.
Felipe compartilhou um vídeo sobre como recuperar LCDs com síndrome do vinagre renovando a película polarizadora. FTMaciel contou ter recuperado o LCD de um Toshiba T1200 dissolvendo a película endurecida com thinner, e Emerson e L. mencionaram o Newton. Erin descreveu um defeito diferente em seu Satellite Pro, no chicote entre a placa de vídeo e o LCD.
VictorEmm compartilhou a notícia de que estudantes da Universidade de Pittsburgh recriaram o Magnavox Odyssey. Felipe disse que não estava claro se fizeram a captura do esquemático, uma PCB ou um simulador. Ele indicou o tópico no Fórum Fiozera onde tinha publicado seus esquemáticos do Odyssey dois anos antes.
Felipe comentou o formato de arcade de parede, que fica mais compacto por usar LCD em vez de CRT; Erin disse preferir bartops. Felipe mencionou que comprou uma placa JAMMA de Ms. Pac-Man.
Antes de viajar à Alemanha para o Libre Graphics Meeting, Felipe perguntou por atrações de retrocomputação em Frankfurt e indicou o technikum29, museu de computadores com máquinas em funcionamento. John A. John comentou o site do museu.
Felipe compartilhou artigos do IEEE Spectrum sobre o design do Olivetti ELEA 9003 e sobre o último mainframe Olivetti em funcionamento, mantido em uma escola na Toscana.
L. mostrou o Dali Clock original rodando em um Xerox Alto no Living Computer Museum, em Seattle, e recomendou o Connection Museum, dedicado à história da telefonia.
Chegou o kit do clone do IBM PC 5150. Felipe fez um scan da PCB e compartilhou também o scan da face superior que veio no CD. Discutiram-se o teclado (PS/2 com adaptador), as camadas da placa e o desenho do esquemático no KiCad para estudar cada componente antes de soldar. FTMaciel, que já consertou uma placa 5150, se ofereceu para procurar uma placa CGA com um colega, e L. ofereceu seu XT com monitor CGA.
L. contou que retomou um emulador de PC feito do zero, para XT ou anteriores, com o objetivo de dar boot no MS-DOS 2.0. A partir de um artigo sobre trabalhar com um IBM 5150, Erin e L. discutiram o uso de computadores antigos para tarefas atuais e a dificuldade de integrá-los a serviços modernos.
Foi encaminhada a mensagem de alguém que comprou o livro raro "Construa seu órgão eletrônico" e pretende escaneá-lo e disponibilizá-lo.
FTMaciel compartilhou as ROMs do DGT-1000, extraídas pelo pessoal do grupo de TRS-80 em um evento retrô, e Felipe se propôs a verificá-las e adicioná-las ao MAME. Os dois se encontraram no Calango Hacker Clube, em Brasília. Leonardo Roman explicou que o DGT-1000 é um clone do TRS-80 Model I e que, nos emuladores, o cursor aparece como "M" por diferença na ROM de caracteres. Felipe concluiu que é preciso fazer o dump da ROM do gerador de caracteres.
Pitanga pediu sugestões para reativar um 486; foram sugeridos Pinball Fantasies, Doom, Turbo Pascal ou Turbo C++ e coletâneas de demos. Felipe contou que Lord Spy e DalPoz lhe ensinaram assembly de Z80 para MSX em 2003/2004. Ele descreveu o truque de inicializar o VDP com um laço de instruções OUT lendo valores de uma tabela.
Emerson Moura mostrou um servidor Unix headless da Sisco, de 1990, com processador 68020, 16 MiB, SCSI com processador próprio e 16 portas seriais. Ele não inicializa porque os disquetes se perderam e o HD está com defeito. Felipe sugeriu fazer o dump das ROMs. FTMaciel propôs consultar antigos profissionais e indicou um grupo de Facebook da Sisco, e Leonardo Roman sugeriu tentar o dump do HD.
Felipe relatou a ida ao Calango Hacker Clube, onde FTMaciel lhe deu uma placa CGA de 8 bits, e o andamento da soldagem de soquetes e componentes da placa-mãe. A fonte de arcade disponível não servia por não fornecer -5 V e -12 V, e Erin observou que fontes ATX deixaram de ter -5 V. Felipe comprou uma fonte AT no Mercado Livre, e Emerson Moura recomendou fazer recap mesmo em fontes que funcionam. Leonardo Roman sugeriu obter -5 V com um regulador 7905 a partir da linha de -12 V.
L. compartilhou um relato técnico sobre a decodificação da ROS não executável do IBM 5100.
Com a fonte AT testada, o clone ligou e mostrou diagnósticos na tela pela placa CGA, apontando erros em bits da RAM. Com Gustavo Romero, Felipe completou os 256 KB de RAM, ligou um teclado XT e estudou o código da BIOS. Ele tentou dar boot no Alley Cat por um disquete de 3½" de 1,44 MB. Erin sugeriu verificar se o cabo do drive estava invertido. FTMaciel explicou que a BIOS não aceita esse formato sem uma BIOS de controladora como a de Sergey Kiselev. Foram indicadas BIOS alternativas, e Felipe falou da ideia de rodar o Alley Cat direto de uma EPROM, sem sistema operacional.
Um vídeo sobre a engenharia reversa do Diablo sem código-fonte levou a comentários sobre o Blood, cujo relançamento comercial e ports modernos também vêm de engenharia reversa, e a lembranças de trabalhos de engenharia reversa da BIOS de MSX e de set-top boxes, do Galaga e do Pinball Fantasies.
A partir dos vídeos de Ben Eater sobre uma placa de vídeo em protoboard, Felipe "Juca" Sanches contou sua tentativa anterior de um circuito parecido baseado no livro "How to Design and Build Your Own Custom TV Games", com o objetivo de rodar a VM do Another World. Discutiram-se o uso de um registrador na saída da EPROM, ROMs por cor e o projeto de um gerador de caracteres. Emerson Moura citou o Motorola 6845, usado em placas CGA e de 80 colunas do Apple II.
L. noticiou a decompilação do Mario de N64, que poderia ser recompilado com gcc. Felipe "Juca" Sanches distinguiu desmontagem de decompilação e disse que, pelo que lia, o resultado era código C.
Felipe "Juca" Sanches propôs exibir no Garoa Hacker Clube o documentário de Jason Scott sobre text adventures e jogar Colossal Cave Adventure em seguida, e os participantes discutiram datas (sábado 10/08, segunda 12/08 ou 29/07). L. informou que o documentário sobre computação doméstica no Brasil estava saindo.
Felipe "Juca" Sanches ganhou um Zip drive de porta paralela com defeito e citou a informação, vista na internet, de que o chip custom da Iomega seria um microcontrolador 8052. Ele quis extrair o dump da EPROM 27512 em PLCC32 soldada na placa, mas achou o clip Pomona caro. Affonso Amendola contou que nenhum dos drives que abriu funcionava direito, L. indicou clones baratos do clip no AliExpress e versões para impressão 3D, e Guilherme Kenzo ofereceu outro drive.
L. compartilhou o livro "Programming Boot Sector Games" e o bootOS, sistema operacional monolítico para 8086 em 512 bytes.
Felipe "Juca" Sanches relatou o conserto de uma placa JAMMA de Ms. Pac-Man (Midway, 1981): a instabilidade do sincronismo vertical, que piorava com o som, foi resolvida trocando os cinco capacitores ressecados do circuito de áudio. As cores foram corrigidas cortando duas trilhas e trocando os sinais com pedaços de terminais de componentes. FTMaciel e ele comentaram placas de Mortal Kombat com defeito que têm guardadas.
Emerson Moura mostrou fotos de um Sisco Six/30, servidor nacional com processador 68020, 16 MiB de RAM, SCSI e controladora serial para 16 terminais, que segundo ele seria uma cópia aproximada de um Sun3/150 ou /250. No último teste, em 2016, a máquina ligava, mas o HD SCSI-1 estava batendo e não carregava o sistema. Discutiu-se a recuperação da imagem do disco, o dump das EPROMs (as PAL/GAL seriam a parte difícil) e levar as placas ao Garoa para um encontro de dump e escrita de um emulador no MAME.
Durante uma viagem a Tóquio, Felipe "Juca" Sanches mostrou uma mesa de mahjong eletrônico e o fliperama da SEGA em Akihabara. L. indicou a loja Super Potato, Felipe compartilhou guias do fliperama Mikado e de outros arcades, e Hugo (Agaelebê) sugeriu a Bic Camera. Comentou-se o preço alto do X68000, e Ricardo Bánffy mencionou as workstations Unix NWS da Sony.
Ricardo Bánffy perguntou como achar as ROMs de gerador de caracteres dos sistemas emulados no MAME, para a fase 2 de uma proposta de caracteres de terminais ao Unicode. Felipe "Juca" Sanches explicou que o nome da ROM aparece no código-fonte do driver (geralmente "cgrom", às vezes "chargen" ou "gfx") e que o arquivo está no zip de ROMs do driver. Ricardo depois comentou símbolos em comum entre as ROMs do Ohio Scientific Challenger/Superboard e do I-7000, e o conteúdo da ROM de fontes do X68000.
A partir de uma reportagem sobre o labirinto de um jogo antigo, Felipe "Juca" Sanches lembrou que o algoritmo dos gabaritos dos livros do Pense Bem ainda não foi desvendado. L. disse que já anotaram as respostas de vários livros sem acertar 100%, perguntou se Felipe chegou a fazer um emulador da versão ATmega, o que ajudaria a achar a rotina, e citou a reimplementação do Pense Bem em JavaScript e SVG feita com Felipe. Leonardo Roman sugeriu responder os livros e procurar o padrão.
Felipe "Juca" Sanches apresentou uma prova de conceito de emulador do Patinho Feio rodando num Arduino instalado no painel-réplica: alterna modos de operação, endereça e grava a memória e aparentemente executa o "hello world" que imprime na teletype. O código foi publicado no GitHub. Ele depois tentou fazer uma impressora matricial imprimir a saída do programa, viu a impressora imprimir caracteres arbitrários ao ligar o sistema e disse suspeitar mais do hardware que do software. Também citou a ideia de usar a teletype ASR33 da Poli com o painel, como num vídeo do Altair 8800.
Felipe "Juca" Sanches publicou no repositório do Patinho Feio dois PDFs de 1973 da prof. Maria Alice Grigas Varella Ferreira ("Anexo 21: Sistema Cross Montador" e "Anexo 22: Sistema Cross Carregador"), que descrevem os sistemas feitos por ela no IBM-1130 para gerar código objeto para o Patinho Feio. Os PDFs foram gerados pela própria professora, que também doou a ele os originais e outros materiais ainda não digitalizados, entre eles o volume 2 dos artigos de um seminário de 1977 da UFMG, com artigos sobre o FORTRAN estruturado para o G-10 e sobre o Patinho Feio como RJE do Burroughs 6700.
Felipe "Juca" Sanches compartilhou um tópico de fórum sobre a interface entre o Patinho Feio e o sintetizador musical do prof. Guido Stolfi; L. respondeu com uma brincadeira.
Felipe "Juca" Sanches mostrou fotos de uma noite no Garoa Hacker Clube com painéis-réplica do Patinho Feio. Perguntado por pitanga, disse que fez os dois, atribuiu a diferença de cor a não ter usado perfil de cores ICC e explicou que o primeiro protótipo não traz os avisos que, no original, eram papéis colados no painel.
Os dois links para o código-fonte do Photoshop 1.0 citados num artigo de 2013 da Ars Technica (site do Computer History Museum e espelho no GitHub) davam erro 404. Erin Pinheiro achou cópias funcionais no Wayback Machine, e discutiram-se a perda de páginas e a cláusula de não redistribuição do material. L. comentou o suporte a cores do QuickDraw no primeiro Mac.
Ricardo Bánffy pediu apoio para o smooth scrolling (DECSCLM) no iTerm2 e perguntou se as emulações de terminais VT do MAME poderiam servir de terminal num Unix. Ismael Luceno sugeriu ligar a porta serial emulada a um pseudo-tty (algo como "mame vt240 -bitb /dev/ttyXXXX"). Felipe "Juca" Sanches citou o trabalho de Ramiro Polla, que ligou programas e o CUPS à emulação de uma matricial Epson no MAME, e L. descreveu o uso de pipes nomeados entre o DOSBox e o MAME.
Felipe "Juca" Sanches compartilhou a notícia de que o Internet Archive disponibilizou 2.500 jogos de MS-DOS.
Ricardo Bánffy perguntou como validar uma fonte para o Google Fonts. Felipe "Juca" Sanches indicou o fontbakery e disse que estavam preparando os arquivos da fonte 3270 de Ricardo para tentar publicá-la no Google Fonts. L. disse usar a fonte no terminal.
Temas: Emulação de máquinas no MAME (5), Pense Bem e o Zilog Z8 (5), Engenharia reversa, código e ferramentas (6), Preservação, acervos e o papel do grupo (9), Restauração e identificação de equipamentos (5), Another World e FPGA (4), Computadores homebrew e réplicas (6), Eventos e cursos (3), Leituras, vídeos e links (8)
Fractal divulgou o MSX SP 2019, realizado em 7 e 8 de dezembro, com inscrições, rifa, expositores e a exibição do curta "Obsoleto".
Alexandre Villares compartilhou a notícia do livro sobre tipografia de jogos arcade, com tiragem de mil cópias. Felipe "Juca" Sanches, que conhece o autor de conferências de tipografia, mostrou o exemplar quando chegou, e Lord Spy comprou o seu.
Felipe "Juca" Sanches compartilhou um vídeo do MVG sobre o UltraHLE. L. lembrou que o código do emulador vazou e continha trechos sob GPL.
Felipe "Juca" Sanches contou que fez uma chamada de vídeo com Fabien Sanglard sobre a VM do jogo Another World. Perguntado por Ismael Luceno sobre a parte de vídeo do projeto de placa para o jogo, disse que Fabien o incentivou a retomá-lo, que ainda não tinha avanços e que tinha uma nova placa FPGA para experimentar com saída VGA.
FTMaciel compartilhou a IDE web 8bitworkshop. Felipe "Juca" Sanches contou que já a usou e que a mencionou no vídeo mais recente do Happy Hacking Video Blog, ainda a ser publicado.
L. compartilhou os artigos de Fabien Sanglard sobre a renderização de polígonos do Another World nas versões original, PC DOS, SNES e Jaguar.
Felipe "Juca" Sanches mostrou os selos dos Correios sobre a história da computação brasileira. A partir deles explicou o que foi o Zezinho, do ITA: dois PDFs do início dos anos 60 sobre a máquina estão no repositório do Patinho Feio, e em novembro de 2017 ele começou a emular a máquina no MAME. Disse que a emulação é parcial, que os documentos são difíceis de ler por causa da má qualidade do scan e sugeriu escanear de novo os originais, que estariam na biblioteca do ITA.
Felipe "Juca" Sanches criticou o fato de o projeto que reuniu 36 mil jogos e animações em Flash aceitar remover itens a pedido de detentores de direitos. Leonardo Roman perguntou se o MAME suporta Flash, e L. comentou que existem engines de Flash livres, mas que o MAME provavelmente não aceitaria uma por não ser a emulação de uma máquina real.
Felipe "Juca" Sanches recebeu um Itautec I-7000-G com ROM de outubro de 1985 e contou que anos antes tinha escrito no MAME um emulador incompleto, baseado em suposições, a partir dos dumps de Alexandre Tabajara. Ele documentou com fotos a desmontagem das três placas e a limpeza da placa-mãe com álcool isopropílico, e identificou chips compatíveis com os da Intel (8259, 8255, 8237), numa arquitetura que lembra um PC-XT com Z80. FTMaciel compartilhou uma pasta com material da Itautec já escaneado, que não incluía o I-7000, e informou que esperava obter os esquemas da máquina.
Felipe "Juca" Sanches compartilhou os episódios 10 ("JAMMA Arcade") e 11 da série de vídeos "Another World VM". Quando Hugo (Agaelebê) perguntou pelo projeto em FPGA, respondeu que estava avançando devagar.
Ricardo Bánffy procurou as ROMs do PC portátil Corona/Cordata (coppc400.zip) para estudar sua fonte. Felipe "Juca" Sanches localizou o arquivo pelo histórico de versões do MAME e o compartilhou. Depois Ricardo compartilhou uma thread de Foone sobre o dump do gerador de caracteres; segundo a leitura de Felipe da descrição de Lord Nightmare, a fonte tem resolução vertical dupla e dados entrelaçados entre duas ROMs.
Hugo (Agaelebê) compartilhou o código-fonte do computador de guiagem da Apollo 11, e Felipe "Juca" Sanches citou um PR seu que corrige um erro de digitação da transcrição.
Felipe "Juca" Sanches compartilhou uma reportagem sobre o microcomputador do tamanho de uma moeda desenvolvido na USP e indicou uma issue que pede a publicação dos esquemáticos do hardware.
pitanga ia se desfazer do seu primeiro computador, um 486, e Felipe "Juca" Sanches pediu o conjunto completo, com monitor CRT e disquetes. Na conversa, Felipe mencionou que daria uma palestra na LibrePlanet 2020.
FTMaciel mostrou a placa de um Sega Teradrive em que o dono anterior havia trocado a CPU e o cristal, rompendo várias trilhas. O grupo comentou placas de upgrade 486 para 286, uma thread arquivada sobre o upgrade para 486DX, a comparação com o Amstrad Mega PC e o uso pretendido do Teradrive como ambiente de desenvolvimento para o Mega Drive.
FTMaciel indicou a Felipe "Juca" Sanches um vídeo sobre decapagem de chips sem produtos químicos e depois uma palestra de John McMaster sobre captura de mask ROMs. L. indicou o zorrom, utilitários para decodificar mask ROMs que, segundo ele, processam a saída de ferramentas que tratam fotos. Felipe lembrou a ideia de usar ácido no Z8 do Pense Bem, e L. disse que um dia mandaria um Z8 para alguém com equipamento para isso. L. também mencionou que McMaster vinha extraindo por imagens a ROM de boot do Game Boy.
Ricardo Bánffy informou que o Unicode 13 incluiu símbolos de videotexto, ATASCII e PETSCII e que as propostas para o Unicode 14 incluem caracteres usados no Itautec I-7000.
Erin Pinheiro 🐿 consertou uma Canon Typestar 10-II, de impressão térmica, e mostrou o interior; Felipe "Juca" Sanches pediu um dump da ROM. Depois de L. sugerir controlar a máquina pela matriz do teclado, Erin disse que pretende usar um Arduino Leonardo como interface serial para a matriz e assim usar a máquina como tty. Mais tarde informou que a ROM visível parece ser só o dicionário do corretor ortográfico.
L. compartilhou a intro "Memories" para MS-DOS, de 256 bytes, e depois uma wiki que explica seu funcionamento.
L. compartilhou o projeto de TubeTime que reproduz um Vectrex usando um osciloscópio como tela, já rodando um jogo.
L. e Felipe "Juca" Sanches compararam as placas FPGA OrangeCrab e ULX3S, e Felipe destacou a saída HDMI da ULX3S. L. comprou as duas.
Eduardo Loos divulgou um pedido de apoio ao Datassette. Leonardo Roman explicou que parte do acervo já está no archive.org, mas a maior parte não, e que um torrent é publicado a cada seis meses. Ricardo Bánffy se ofereceu para baixar o torrent e subir o material. Felipe "Juca" Sanches explicou como pediu uma coleção temática no archive.org e usou a API em Python para enviar cerca de 4 mil itens de demoscene MS-DOS extraídos do pouet.net.
L. mostrou componentes de um projeto que Felipe "Juca" Sanches identificou como um Pense Bem, com display de matriz de LED e um teclado de 32 teclas lido por apenas 2 pinos.
L. mostrou um livro em capa dura lançado no fim de abril de 2020, que Felipe "Juca" Sanches não conseguiu comprar inicialmente por não haver envio para o Brasil. Lord Spy comentou que tem esse livro e o diário do Karateka em formato Kindle. No início de setembro, Felipe contou que tinha comprado o livro, que chegara na semana anterior, e o recomendou.
Felipe "Juca" Sanches informou que o verbete do professor João José Neto na Wikipedia em português, apagado em outubro de 2019, foi restaurado por ele. Ele pediu ajuda do grupo para melhorar o texto.
Emerson Moura perguntou se computadores homebrew feitos com tecnologia antiga cabiam no tema do grupo, e L. e Felipe "Juca" Sanches responderam que sim. Emerson mostrou depois o andamento de seu projeto com o processador Motorola MC6800, e Felipe sugeriu documentar o progresso no fórum Fiozera.
L. compartilhou um quadro feito com disquetes coloridos e montou o seu. Felipe "Juca" Sanches sugeriu gravar nos disquetes uma mensagem com redundância para alguém que tente lê-los no futuro.
L. compartilhou o projeto de uma CPU de 8 bits construída com lógica 74LS, com esquemas e código.
Felipe "Juca" Sanches encaminhou mensagens com um texto do MIT sobre a história do Zork e da Infocom.
L. divulgou a liberação do código-fonte do GW-BASIC sob licença MIT e começou a escrever em Python um conversor do assembly 8086 para Z80, pensando no MSX. A conversa tratou do mapeamento de registradores (AX/AH não têm equivalente direto no Z80) e das rotinas de I/O que precisariam ser escritas à mão. Depois L. publicou um post sobre a conversão.
Felipe "Juca" Sanches repassou o convite para participar da demoparty argentina Flashparty, prevista para julho de 2020.
L. mostrou a foto de um Expertinho, cujo modelo 3D foi feito por Raul Tabajara, irmão de RicBit, e está em sua página no Gumroad. Felipe "Juca" Sanches se interessou em imprimi-lo em resina.
A partir de um vídeo sobre os laptops da VTech, que Felipe "Juca" Sanches confirmou ser a fabricante original do Pense Bem, pitanga lembrou de cartuchos falsos que pareciam apenas selecionar programas embutidos. Felipe comparou esse recurso ao primeiro Odyssey da Magnavox.
A partir da foto de um clone do Apple II+, Erin Pinheiro 🐿 identificou o drive de dois lados como um Mitsumi Quick Disk ou outro drive de 3 polegadas, e FTMaciel confirmou o Quick Disk.
Felipe "Juca" Sanches contou que estava escrevendo em Python um disassembler de 286, consultando o do MAME, como extensão do ExecTrace. A ferramenta já suportava o 8048 do Odyssey², o Z80 (com funções para a BIOS do MSX) e passaria a suportar x86, para retomar a engenharia reversa do Pinball Fantasies. L. observou que as instruções do 8086 se agrupam de 8 em 8 quando vistas em octal.
Alexandre Villares ofereceu uma mesa digitalizadora Wacom antiga, e Felipe "Juca" Sanches indicou um projeto com Teensy para interface Apple Desktop Bus.
Depois de uma pergunta sobre netplay, Felipe "Juca" Sanches lembrou que o grupo foi criado para coordenar a documentação e a emulação de computadores antigos, mas que na prática virou um espaço de conversa sem projetos ativos. Ele mencionou o trabalho de Ricardo Bánffy com fontes bitmap de terminais seriais antigos e documentos do Patinho Feio ainda não escaneados, que encaixotou por causa de uma mudança.
Felipe "Juca" Sanches repassou a divulgação de um curso online e gratuito sobre archaeogaming tendo o Atari 2600 como objeto, organizado pelo museu de arqueologia da USP. Felipe e Lord Spy discutiram o conteúdo e o jargão da descrição. Depois ambos relataram que tiveram a inscrição negada, e Felipe estranhou a falta de vagas numa atividade online.
Felipe "Juca" Sanches compartilhou a série, e Lord Spy a considerou superficial. Felipe observou que Becky, que aparece no primeiro episódio, fez o port do Another World para o SNES.
Lord Spy pediu referências sobre a implementação do scroll fino no PC por Carmack em Dangerous Dave in Copyright Infringement. Consultando um manual, o código do MAME e o datasheet, RicBit concluiu que o CGA permite emular scroll fino por set scroll e que o MAME não implementa esse recurso no CGA, ressalvando que só o hardware confirmaria. Mais tarde Lord Spy relatou que Carmack trabalhou por tentativa e erro, sem documentação das placas, e aparentemente sem usar os registradores de scroll.
Felipe "Juca" Sanches perguntou se seria possível reativar o Microsoft Comic Chat original depois do fim dos servidores da Microsoft. L. e Erin Pinheiro 🐿 explicaram que se trata de um cliente IRC comum, que codifica as informações dos quadrinhos num prefixo em texto nas mensagens. L. também indicou um cliente web com servidor node.js baseado no Comic Chat.
Felipe "Juca" Sanches compartilhou um vídeo sobre o emulador de ZX Spectrum escondido no cartucho do GoldenEye 007 e o vídeo "Contra - Behind the Code", cujo formato pensa em usar no Happy Hacking Video Blog.
O grupo comentou o vazamento do código do Windows XP. L. lembrou que a possibilidade de uso de código vazado já prejudicou o ReactOS.
Felipe "Juca" Sanches contou que comprou equipamentos de vídeo profissionais da Sony (unidades da mesa de controle PVE-500, VCRs UVW e U-Matic e o switcher DFS-500) e que estava emulando esses aparelhos no MAME. Ele já tinha emulado parcialmente a PVE-500, doada anos antes, e passou ao DFS-500. Relatou a limpeza de uma placa com bateria vazada, os primeiros testes do hardware e o uso de duas CPUs NEC V20 e uma NEC V30. O emulador já gerava sinal de vídeo a partir de uma imagem estática, e o driver foi enviado ao MAME como "non-working" no PR #7346.
Felipe "Juca" Sanches encontrou num documento da Zilog o modo de teste do Z8: 7,5 V no pino /RESET durante 6 ciclos após o reset permitem executar código lido da porta P1. Ele comprou unidades de Pense Bem para os testes e compartilhou um programa já usado, a partir de uma ROM externa, para extrair a ROM interna de um Z8 num jogo de xadrez emulado no MAME. Também dessoldou o Z8 de um Pense Bem e instalou um soquete, e o aparelho continuou funcionando. Felipe apostou que o gerador pseudoaleatório do brinquedo seria um LFSR, e RicBit observou que nesse caso bastaria medir a saída e interpolar o polinômio.
Felipe "Juca" Sanches compartilhou uma alternativa de código aberto ao Gotek USB floppy. Ele explicou que pretende usá-la num ataque "man-in-the-middle" para entender o protocolo de atualização de firmware do teclado Technics SX-KN5000, cujos disquetes de update usam um formato que ele desconhece.
RicBit compartilhou a disassembly totalmente comentada do Metal Gear do MSX2, que começou a otimizar. Ele explicou que o jogo pressupõe 64 KB de VRAM e descomprime dados durante o jogo, e que os 64 KB a mais presentes na maioria dos MSX2 permitiriam guardar esses dados em cache e reduzir o tempo entre telas.
Emerson Moura compartilhou o ISASTM, que permite usar placas ISA antigas por USB.
Felipe "Juca" Sanches enviou ao MAME (PR #7407) o driver do relançamento do Pense Bem de 2017, que usa um ATmega. O driver estava quase completo, mas o som tinha ruído por causa da implementação ineficiente do core AVR8. Ele esclareceu que o modelo original, com o Zilog Z8, continuava sem dump.
L. compartilhou o eXoDOS, projeto que cataloga e torna jogáveis os jogos de DOS e PC Booter a partir da mídia original, com DOSBox e ScummVM.
Flávio Amieiro indicou a Arcade Components, loja com estoque de circuitos integrados antigos.
Temas: Engenharia reversa do teclado Technics KN5000 (25), Pense Bem: algoritmo dos gabaritos e digitalização dos livros (10), O console Zeebo e a TecToy (7), Comunidade de emulação, MAME e ares (17), Outros projetos de engenharia reversa e software (11), Restauração e exploração de hardware (17), História da computação brasileira (15), MSX (8), Eventos, lives e palestras (4), Links sobre história e preservação (30)
Felipe "Juca" Sanches compartilhou a notícia de que a Sega venderia a maior parte do negócio de arcades por causa da COVID-19 e o ataque de ransomware à Capcom, com cerca de 1 TB de dados supostamente roubados. Depois compartilhou um vídeo do MVG sobre o vazamento.
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.
Felipe "Juca" Sanches contou que queimou o Z8 de um Pense Bem ao tentar fazer o dump. L. mencionou outro exemplar no Brasil, um Smart Start original, e Felipe disse que só tentaria com ele depois de dominar a técnica. Felipe também compartilhou um vídeo de experimentos de programação no Pense Bem modelo 2017.
Felipe "Juca" Sanches retomou o driver do Itautec I-7000 G (CP/M) no MAME e, sem esquemáticos, passou a mapear os sinais da placa-mãe com multímetro. FTMaciel relatou que o detentor dos esquemáticos originais (em formato A0) não os enviou para digitalização, e o grupo discutiu o transporte e o risco de extravio; Aylons Hazzud se ofereceu para levar os documentos a São Paulo e devolvê-los depois. Felipe publicou um repositório com os esquemáticos que está desenhando a partir da PCB e criou símbolos KiCad para NSC800D, M5L8279P-5, TMP8251AP e WD2793.
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.
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 fotos do Tube Time do protótipo do primeiro IBM PC montado em wire-wrap. Erin Pinheiro lembrou o protótipo do Mac feito por Burrell Smith, e o grupo comentou a evolução do gerador de vídeo do Mac e a técnica de wire-wrap.
Felipe "Juca" Sanches disse querer uma placa FPGA com conector JAMMA, baseada em um chip com toolchain livre como o Lattice ICE40, para carregar cores de arcades em um gabinete. Como acha que ela ainda não existe, cogitou projetá-la no KiCad.
L. abriu no Ghidra o dump do firmware AVR do Pense Bem 2017 e apontou a função em 0x0b60 como possível gerador de números pseudoaleatórios. Ele concluiu que precisaria de um depurador para avançar.
FTMaciel perguntou como fazer o dump de uma PROM de uma placa SID 502. Felipe "Juca" Sanches pensou inicialmente em chips PAL, e FTMaciel esclareceu que se trata de uma PROM bipolar (BPROM), comum em placas de arcade.
Felipe "Juca" Sanches compartilhou um vídeo do Prince of Persia no MSX, e Emerson Moura observou que o port exige o cartucho de vídeo V9990. A conversa passou para os encontros de MSX (MSXSP, Jaú) e as dificuldades de quem chega à comunidade.
L. compartilhou um adaptador de SSD M.2 para IDE. O grupo discutiu se o adaptador usa SATA ou NVMe e qual é o ganho de desempenho, já que o barramento IDE é o limite.
Flávio Amieiro avisou da palestra sobre o hacking do novo Game & Watch no rC3 e depois compartilhou a gravação.
Felipe "Juca" Sanches contou que está completando sua coleção de livros: tem quase todos os lançados no Brasil e faltam cerca de quatro originais americanos. Ele descobriu que houve edições na Suécia e compartilhou um anúncio do Smart Start Speller original da VTech.
Felipe "Juca" Sanches encontrou a partir do endereço 0x149 do firmware do Pense Bem 2017 (ATmega) o gabarito do livro 3, codificado com 2 bits por resposta, e confirmou a descoberta alterando os bytes e rodando a ROM no MAME. Ele levantou a hipótese de que o firmware Z8 original gerasse as respostas com um LFSR. L. testou por força bruta LFSRs de 16 e 24 bits (script em gist) e Felipe testou variantes com 2 a 4 XORs, sem encontrar correspondência. L. sugeriu que a tabela pudesse ser código Z8 lido como dados; Felipe desmontou-a como Z8 em vários offsets e concluiu que não parece código, indicando o unidasm do MAME para esse tipo de teste.
Felipe "Juca" Sanches escaneou livros do Pense Bem da sua coleção (especiais Disney, Sonic e Tails, Volta ao Mundo, Atividades Programadas, entre outros) e um livro americano Smart Start Matchbook, e os publicou no Datassette. Leonardo Roman completou no site o título do livro americano. Por sugestão de Erin Pinheiro, Felipe disse que planeja pedir ao Internet Archive uma coleção "VTECH SMART START", e mostrou uma comparação entre edições em português e em inglês.
Uma pergunta sobre a fonte usada nos videokês dos anos 2000 levou Felipe "Juca" Sanches, dono de aparelhos Raf VMP-3700 e VMP-2000S, a compartilhar os dumps das EPROMs. Erin Pinheiro intercalou as ROMs par e ímpar e extraiu com o binxelview as fontes bitmap e fragmentos do logotipo; também encontrou as strings do sistema e, com um script em Python, extraiu os MIDIs contidos na ROM. Felipe contou que tem um driver MAME incompleto do VMP-3700, parado na emulação do 386EX, e ofereceu publicar o branch.
Felipe "Juca" Sanches refez a conta: os gabaritos de 100 livros ocupariam cerca de 3,7 KB, mais que os 2 KB do Z8, e portanto teriam de ser gerados algoritmicamente. Ele extraiu do firmware de 2017 a tabela dos 99 livros e verificou que a sequência inicial de 149 respostas se repete com alterações apenas em posições múltiplas de 15. Publicou uma implementação em Python e JavaScript (pull request no repositório Pense-Bem) que reproduz todos os gabaritos usando 738 bytes de dados. RicBit tentou interpolar o polinômio, sem obter um polinômio pequeno, e sugeriu dois LFSRs de períodos diferentes combinados ou um de período 15/30.
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.
Felipe "Juca" Sanches compartilhou a história do GayBlade: cópias perdidas pelo autor foram encontradas no Schwules Museum de Berlim e o jogo foi preservado com o LGBTQ Video Game Archive, o Strong Museum e o Internet Archive. RicBit comentou que deve haver jogos de temática gay anteriores no PC-88, desconhecidos por estarem em japonês.
Dente mostrou um anúncio a Felipe "Juca" Sanches, que disse só se interessar se viessem livros junto; ele procura os especiais Disney Rei Leão e Hércules. A sugestão de kretcheu de um "Pense Bem GNU" levou à ideia de um firmware livre para o Pense Bem 2017, adaptando a implementação incompleta em C++ que está no repositório do simulador.
Felipe "Juca" Sanches compartilhou um vídeo dos seus primeiros experimentos de desenvolvimento para a placa SEGA Model 3. FTMaciel comentou que tem placas do adaptador usado e que a sua não funcionou de primeira por causa de um transistor defeituoso.
Ismael Luceno perguntou a RicBit se existe um assembler livre compatível com o TASM para montar o BrMSX. L. sugeriu o nasm, que Ismael já havia tentado sem sucesso. RicBit sugeriu um conversor de TASM para a sintaxe de um assembler aberto, e Felipe "Juca" Sanches concordou com a ideia de reformatar o código em uma etapa de pré-processamento.
Felipe "Juca" Sanches divulgou a programação da sala de emuladores (devroom) do FOSDEM 2021.
Felipe "Juca" Sanches comprou um soprador de ar quente e passou a treinar a dessoldagem de CIs em placas de sucata; L. e FTMaciel comentaram ferramentas de dessoldagem. Ele encomendou soquetes SOIC44 com adaptadores para DIP, para ler no TL866CS as mask ROMs dessoldadas da placa principal do teclado Technics SX-KN5000 (duas CPUs Toshiba TLCS-900/H, dois DSPs, LCD colorido e drive de disquete), cujo service manual foi compartilhado. Felipe explicou que núcleos de CPU menos usados no MAME, como o TLCS-900, tendem a estar incompletos para novos firmwares. Ele também buscou o service manual do KN1500 no elektrotanya, que estava com defeito e voltou a funcionar dias depois.
L. compartilhou uma série de artigos sobre simular monitores CRT com FFmpeg, que também cobre LCDs de matriz passiva e telas de plasma.
Felipe "Juca" Sanches mostrou o vídeo da dessoldagem das ROMs do KN5000 feita por Ronaldo Verardo, o técnico de quem comprou o teclado. O grupo discutiu se o material sob os CIs era cola ou fluxo; Ronaldo explicou que é cola, necessária porque a solda é feita por onda, e mostrou a ponteira que fez com fio rígido. Também se comentou o gerador de som "Dynamic PCM" do teclado.
Felipe "Juca" Sanches compartilhou um vídeo sobre a preservação da última máquina analógica de motion graphics e outro sobre a restauração de uma parafusadeira manual; Ronaldo Verardo indicou vídeos de restauração de isqueiros. Ronaldo descreveu um órgão analógico Caribean, herdado do pai, que pretende restaurar (capacitores, molas, contatos, feltros). FTMaciel indicou um órgão Wurlitzer de três teclados à venda, que Felipe acabou comprando e que aguarda reparos.
Felipe "Juca" Sanches compartilhou a foto de um material sobre jogos dos anos 90, cujas descrições comparou a chamadas de filme; Eduardo Loos observou que eram jogos de PC. RicBit perguntou se o texto não seria de mbcf (Mario Batista Câmara Filho), da Orionsoft, que traduzia jogos e escrevia detonados na revista MSX Micro, e lembrou que todo jogo pirata da época tinha um "mbcf" escondido no binário.
Felipe "Juca" Sanches esboçou um driver de emulação do teclado Technics KN1500 no MAME, ainda sem funcionar, como preparação para o KN5000. Flávio Amieiro sugeriu um vídeo explicando um driver do MAME. Felipe indicou sua palestra do FISL15 e explicou a mudança de licença do MAME: antes a licença proibia uso comercial; hoje o núcleo é BSD-3-clause e código GPL é aceito apenas em drivers.
Erin Pinheiro mostrou fotos tiradas com sua Sony Mavica FD75, que grava em disquete. FTMaciel recebeu um drive e fitas D/CAS, um formato de fita streamer de vida curta, parecido com a fita cassete.
Felipe "Juca" Sanches observou que a variante da CPU do KN5000 (barramento de 32 bits) provavelmente ainda não existe no MAME. Ele programou um Arduino para acender todos os segmentos do LCD do Technics SX-KN1500, escaneou o display e está vetorizando a imagem para criar um layout SVG para o MAME.
Felipe "Juca" Sanches anunciou uma live com Aylons Hazzud, seu colega de curso na Poli-USP e cofundador, com ele, do Garoa Hacker Clube.
Felipe "Juca" Sanches arranjou um 386 com DOS 5 e Windows 3.1. Depois de abrir e cancelar por engano o configurador do Windows, o Windows passou a acusar configuração incompleta; ele o recuperou trocando o SYSTEM.INI pelo backup SYSTEM.000. Também notou que o Pinball Fantasies força o mixer da Sound Blaster 16 ao volume máximo, o que levou a uma conversa sobre a qualidade de ports.
Leonardo Roman fez o dump de um cartucho de Spy Hunter para ColecoVision, traduzido no Brasil (Atari Mania), que não passava da tela inicial no emulador. Ele identificou blocos trocados a cada 1 KB e publicou a ROM corrigida; apenas a tela inicial está traduzida. RicBit sugeriu que as linhas A10 e A11 podem ter sido trocadas no cartucho, como proteção anticópia, e L. lembrou que a troca também pode facilitar o layout da placa. Felipe explicou que no MAME a ROM fica como sai do leitor e o desembaralhamento é feito no código. L. contou ter achado dois Splicevision e cartuchos em um brechó, e Leonardo Roman disse que as ROMs de jogos do Onyx, console nunca lançado, estão há anos com Eduardo Luccas.
Erin Pinheiro compartilhou uma série de vídeos sobre a restauração de uma Quantel DPB-7001 Paintbox. Felipe "Juca" Sanches disse que isso o anima a retomar a réplica do Patinho Feio, que completa 50 anos em 2021.
L. compartilhou um circuito de FFT montado à mão com cerca de mil CIs lógicos da série 74HC, que calcula uma FFT de 4096 pontos dez vezes por segundo; Felipe "Juca" Sanches traduziu a descrição. FTMaciel disse que pretende fazer algo parecido em uma placa aceleradora para XT.
L. perguntou quão trabalhoso seria refazer no Inkscape o pôster de diagramas de sintaxe Pascal. Felipe "Juca" Sanches testou gerar os diagramas com o script Tcl bubble-gen do SQLite, e L. sugeriu o pikchr. Felipe vetorizou o logotipo "Pascal" em 3D e publicou o pascal3d.svg em domínio público; diante dos casos especiais na geração automática, passou a desenhar o diagrama à mão e criou o repositório PascalSyntaxPoster. Felipe lembrou que ele e Aylons Hazzud haviam vetorizado um cartaz sobre eletromagnetismo cerca de 15 anos antes e perderam o trabalho; Aylons compartilhou o repositório spectrum-poster.
Flávio Amieiro não encontrou o Elifoot no archive.org e propôs enviá-lo. Felipe "Juca" Sanches explicou que, no seu entendimento, o Internet Archive marca itens como "stream only" quando os detentores de direitos pedem, e cogitou que o jogo ainda seja explorado comercialmente. Leonardo Roman indicou o site oficial do jogo e disse que a primeira versão, para ZX Spectrum, parece perdida.
L. comprou um Cidco MailStation, terminal portátil de 1999 com Z80, e abriu o aparelho. Nas fotos da placa, Felipe "Juca" Sanches identificou uma SRAM 62C256, L. uma EEPROM de 128 KB e Erin Pinheiro 🐿 duas ROMs (de 4 e 8 Mbit). Com um TL866II+ e o pino VCC levantado, L. fez o dump da EEPROM, que se revelou ser o firmware do modem Rockwell e não o do sistema. O grupo também discutiu fazer o dump pela serial com um programa carregado no próprio aparelho, que tem um editor hexadecimal embutido.
RicBit contou que jogou Spacewar com o autor do jogo, e L. disse ter jogado na máquina do museu de computação de Mountain View. RicBit contou também que o mesmo programador ligou um fio do LED de status ao alto-falante para gerar som, e Felipe "Juca" Sanches lembrou ter lido essa história no livro Hackers, de Steven Levy.
Flávio Amieiro compartilhou um vídeo sobre a história da Cobra Computadores que menciona o Patinho Feio. Felipe "Juca" Sanches apontou que a instituição concorrente da USP era a UNICAMP, não outro departamento. Sobre a afirmação de que o Patinho Feio foi feito para disputar um contrato com a Marinha, ele disse que, pelo que ouviu de pessoas da USP, o contrato era só da UNICAMP e a USP disputava apenas prestígio acadêmico, ressalvando que não presenciou os fatos.
Erin Pinheiro restaurou uma Penwriter de 1986: limpou o teclado, ajustou o mecanismo do eixo X e tentou recuperar ou recriar as canetas minúsculas, que são as mesmas da plotter Atari 1020. O cabo que parecia RS232 era TTL, e depois a plotter perdia comandos pela serial mesmo com controle de fluxo por hardware. O problema foi resolvido com uma dica de Paul Rickards, que havia publicado o manual no Internet Archive.
FTMaciel mostrou fotos de um aparelho e perguntou se alguém tinha interesse, senão iria desmontá-lo para aproveitar peças. Erin Pinheiro 🐿 perguntou se seria um gravador de 16 sinais analógicos, mas não achou informações sobre ele. Felipe "Juca" Sanches e L. acharam o aparelho interessante, e FTMaciel disse que o deixaria guardado.
L. indicou um emulador do MailStation, com dumps disponíveis no mesmo domínio, e o adaptou para compilar fora do Windows. Felipe "Juca" Sanches observou que a licença, restrita a uso não comercial, impede reaproveitar o código no MAME, mas que a página de informações técnicas basta para escrever um driver. L. recebeu da Microchip os CIs de amostra para fazer o aparelho rodar código arbitrário e planeja portar BASIC/CP/M do RC2014.
Felipe "Juca" Sanches pediu revisão da implementação em JavaScript do algoritmo de respostas do Pense Bem e compartilhou PDFs de livros raros da coleção: especiais Disney (Rei Leão, Olimpíadas 1ª edição), Plebiscito, Senninha e livros em inglês. Ele disse ter 172 livros e 18 aparelhos, de cerca de 90 títulos, dos quais metade já está digitalizada no Datassette.
O grupo comentou a demo de 256 bytes A Mind Is Born, o Chipophone e a demo Lunatico para C64, de Linus Åkesson. pitanga explicou como a música da demo é gerada: três pistas, com a melodia derivada de um LFSR.
Felipe "Juca" Sanches relatou o quarto dia seguido de trabalho no levantamento dos esquemáticos do Itautec I-7000 em KiCad e comparou o processo a montar um quebra-cabeça de componentes.
Foi compartilhada uma matéria do Jornal da USP sobre uma exposição virtual da história dos jogos eletrônicos.
Erin Pinheiro substituiu as duas MX27C4000 de um cartucho pirata de Mega Drive por EEPROMs 39SF040, ajustando os pinos A18 e WE. O dump intercalado das ROMs originais funcionava em emulador, mas o cartucho dava tela preta. Foram discutidos timing, checksum, região, troca even/odd e trilhas embaralhadas; no fim o cartucho bootou depois de mexer nos soquetes e no slot.
Douglas divulgou uma conversa do Circuito reGOSH com o projeto ERGANE (UFRGS), que reconstrói digitalmente artefatos arqueológicos com Blender para uso na educação. Felipe "Juca" Sanches observou a diferença entre essa arqueologia com ferramentas digitais e o foco do grupo, que estuda tecnologias digitais do passado.
Felipe "Juca" Sanches pretendia compilar o port do GCC para x86 de 16 bits para escrever ROMs homebrew para o painel do mixer de vídeo Sony DFS-500, que usa uma NEC V20 e está sendo emulado no MAME. Ele compartilhou também o artigo sobre o microcódigo do 8086 desmontado, e L. destacou os comportamentos não documentados descritos ali, como o prefixo REP negando o resultado de MUL/IMUL e o quociente de IDIV.
Felipe "Juca" Sanches mostrou o FontBakery rodando em Debian e acessado de um 386 com MS-DOS via Kermit pela porta serial. O assunto passou para o reparo de caixas de som antigas: limpeza ou troca de potenciômetros e possíveis falhas em capacitores e transformadores.
A partir de um tweet sobre equipamentos antigos em Houston, RicBit comentou que pegaria máquinas Sun SPARC, e L. lhe ofereceu as que tem guardadas no Brasil (SparcStation 4, Ultrasparc 1, JavaStations, discos SCSI). L. contou que pretende doar a colecionadores, quando for ao Brasil, o restante da coleção que está em Campinas: MSX1, CP-400, TK-85, TK-90X, clones de Apple II, TK2000 e cerca de 30 modelos de Atari nacionais, incluindo um Dactar Maleta.
Felipe "Juca" Sanches pediu ajuda a RicBit para identificar a compressão do arquivo de instalação de sistema do teclado Technics SX-KN5000 (Kn5kv10.img), no qual apareciam fragmentos de strings. RicBit sugeriu LZ77/LZ78 e explicou as diferenças, e Felipe começou a decodificar exemplos como "FOOT CONTROLLER". O objetivo era descomprimir o arquivo para estudar o código e obter mais informações sobre o hardware.
Felipe "Juca" Sanches alterou uma string no arquivo de update e o instalou no teclado, mostrando que o processo não valida checksum. Depois descreveu o formato: um byte-mapa indica se os próximos dados são crus ou referências de 2 bytes a trechos de um buffer circular de 4 KB. Em 27/07 publicou o script em Python que descomprime o arquivo HKMSPRG.SLD; a CPU do aparelho é a Toshiba TLCS900H.
Com o firmware descomprimido, Felipe "Juca" Sanches localizou com o binxelview gráficos da interface (FADE IN/OUT, logotipo Technics, diagramas MIDI) e criou o repositório kn5000_homebrew. Um membro da comunidade MAMEDev observou que o algoritmo é quase idêntico ao LZSS, e Felipe associou a isso a assinatura "SLIDE4K" do cabeçalho. A recompressão com o pacote lzss do PyPI deixou os instrumentos com mensagem de erro e o teclado sem som; Felipe notou que o pacote inicializa o buffer com espaços (0x20) e não com zeros, mas a imagem modificada ainda saía corrompida.
No debugger do MAME, Felipe "Juca" Sanches reconheceu no firmware do KN5000 acessos às portas 3C4/3C5 e 3C8/3C9 típicos de VGA e encontrou a inicialização da paleta de 8 cores básicas. O esquemático confirmou o sinal VGA.IOCS, com as portas mapeadas a partir de 0x170000. Ele também documentou os chip selects de disquete, HDD opcional e porta paralela.
Com as canetas de reposição (kits new old stock de um revendedor Atari), Erin Pinheiro escreveu um conversor de SVG para os comandos seriais próprios da Penwriter e o publicou como pypenwriter. O grupo discutiu como obter outros tons com tracejados ou linhas paralelas. Erin também plotou uma página do manual do Famicom, vetorizada e processada com vpype.
Pelo diagrama de blocos do manual de serviço, Felipe "Juca" Sanches concluiu que a mask ROM de 1 Mbit da sub-CPU, que controla DSPs e o gerador de tons, fica em um barramento separado, inacessível pela CPU principal. Como alternativa, considerou ler o chip diretamente ou modificar a parte do programa da sub-CPU guardada em flash. Citou também o raro módulo opcional de disco rígido HDAE5000.
Felipe "Juca" Sanches alterou a paleta de cores do teclado e escreveu em assembly TLCS900H uma inicialização de modo texto VGA baseada no DOSBox, que resultou em tela preta; passou então a consultar o livro de Ferraro. Buscando instruções ret separadas pela distância entre duas rotinas conhecidas, concluiu que o conteúdo da flash corresponde aos primeiros 2 MB do arquivo descomprimido, mapeados no topo do espaço de endereçamento da CPU, e encontrou o ponto de entrada da CPU principal.
Felipe "Juca" Sanches estava transcrevendo as tabelas de SFRs das quatro variantes de TLCS900 suportadas pelo MAME e analisou o código de boot do KN5000 (watchdog, portas de I/O, timers, chip selects), chegando ao mapa de memória. Levantou a hipótese de que o boot ocorre pela "table data ROM", da qual tinha apenas metade do dump, e implementou de forma preliminar timers, interrupções, seriais e ADC no emulador.
Alexandre Villares compartilhou uma fonte monoespaçada criada a partir das coordenadas de traço dos caracteres da ROM da plotter Commodore 1520. Felipe "Juca" Sanches destacou a documentação do processo de extração do firmware da plotter.
RicBit relatou que o criador do Spacewar lhe explicou como calculava a posição das naves: aquele PDP específico tinha divisão por hardware, porque na época era possível comprar opcodes à parte com o fabricante.
Felipe "Juca" Sanches pediu a Toy que examinasse uma issue (IndexError) nas ferramentas de disassembly do jogo Another World, reportada por um usuário. Toy aceitou verificar.
A emulação travava num loop que espera variáveis alteradas por rotinas de interrupção. Felipe "Juca" Sanches explicou o vetor a partir de 0xFFFF00 (entry point 0xEF03C6) e listou, cruzando com o datasheet, os endereços de cada rotina de tratamento a implementar. Ele também publicou seu branch do MAME com a emulação em andamento dos teclados KN1500 e KN5000. RicBit comentou que esse tipo de loop é comum em jogos de Master System.
Felipe "Juca" Sanches alterou no firmware o ponteiro dos "factory settings" para outra região. Depois de restaurar as configurações de fábrica e gravar um backup, o disquete passou a conter a memória apontada. Assim descobriu que a flash fica espelhada em 0xC00000 e fez o dump da ROM de dados rítmicos (1 MB). Depois disso o teclado ficou sem som mesmo com a imagem original reinstalada; Felipe apontou como possível causa ter alterado o mapeamento do chip select /CS2.
Felipe "Juca" Sanches contou a FTMaciel que a placa CGA recebida dele foi usada em um clone de IBM PC montado a partir de um kit de PCB e chips, que bootou com sucesso.
Em busca de um compilador ou assembler para TLCS900, Leonardo Roman encontrou no Internet Archive o compilador oficial da Toshiba, e RicBit sugeriu o libcpu, que Felipe "Juca" Sanches avaliou como aparentemente abandonado e que não compilou para ele. Ismael Luceno sugeriu o sdcc, que segundo Leonardo Roman suporta apenas o TLCS90. Felipe retomou a ideia de 14 anos antes (tlcs900archc) e iniciou o port do GNU binutils, começando pelo disassembler, como passo para o assembler e um futuro port do GCC.
Felipe "Juca" Sanches compartilhou uma planilha e analisou a mask ROM de boot da sub-CPU, compatível pino a pino com uma M27C1001 e alimentada a 5 V. O encapsulamento parece ser TSSOP32, e ele não encontrou adaptador para o leitor.
Felipe "Juca" Sanches comprou outra placa-mãe de KN5000 como reposição. Para fazer emulação de alto nível dos microcontroladores do painel de botões, propôs capturar o protocolo serial com uma rotina residente instalada no vetor de interrupções. Ismael Luceno sugeriu o Bus Pirate, e Felipe abriu uma enquete sobre as mensagens do projeto.
Emerson Moura lembrou a I Feira Internacional de Informática de 1981, a partir da Micro Sistemas nº 3 digitalizada no Datassette, e o grupo comentou a raridade de computadores nacionais não domésticos. Emerson tem um Sisco com HD SCSI morto e muitos PLDs, e Felipe "Juca" Sanches destacou a importância de fazer o dump das EPROMs. FTMaciel relatou que um particular em Volta Redonda não permite escanear os esquemas da Itautec que possui.
Felipe "Juca" Sanches recuperou o teclado: o problema era um disquete de instalação corrompido, e uma cópia gerada com dd a partir da imagem oficial resolveu. Em seguida analisou a rotina da INT0 (0xEF3525), que lê o registrador de comunicação com a sub-CPU em 0x140000 e dispara micro-DMA no canal 0. Na rotina de fim desse DMA, os 3 bits altos do byte recebido indexam uma jump table em 0xE00012.
Felipe "Juca" Sanches encontrou um bug no disassembler do MAME na instrução LDC para registradores de controle de micro-DMA. Pelo manual do compilador Toshiba, viu que a TLCS900/H2 usa endereços de registradores diferentes; compilou código C com o compilador proprietário para obtê-los e corrigiu o disassembler. Com isso identificou a rotina que configura os canais DMA 0 e 2 entre as CPUs e planeja substituir aos poucos o código original por implementações próprias em C.
Felipe "Juca" Sanches compartilhou um vídeo sobre técnicas de um jogo de Mega Drive, e RicBit comentou que registradores de scroll vertical separados por coluna são exclusivos do Mega Drive.
Felipe "Juca" Sanches mostrou o disassembly do objdump de seu port do binutils lado a lado com o do MAME. Por ora o disassembler mostra os SFRs apenas por endereço numérico, e o próximo foco é o assembler.
Respondendo a kretcheu, que pediu notícias, Felipe "Juca" Sanches relatou commits que implementam o disassembly de mais instruções da CPU do teclado, embora ainda faltasse muito para terminar o assembler e o código tivesse muita repetição. Quando L. sugeriu um link do Hackaday que talvez ajudasse com o teclado, Felipe disse que tinha pausado a engenharia reversa do teclado para fazer o toolchain da CPU dele, que pretende usar para escrever código e inspecionar o funcionamento do teclado sem digitar opcodes num editor hexadecimal.
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.
RicBit propôs uma live de engenharia reversa do MSX Turbo R para corrigir partes emuladas de forma errada; disse que o MAME parece ter o mesmo bug e apontou o openMSX como o melhor emulador, ainda imperfeito no som. O grupo discutiu ferramentas de transmissão (StreamYard, OBS). A primeira live, no Twitch, caiu no meio da explicação sobre a espera de N ciclos entre escritas e ficou para continuar no dia seguinte.
Flávio Amieiro mostrou o Commodore 64 que comprou com monitor, datassete e drive de disquete por 160 euros, ainda sem o cabo de vídeo. Felipe "Juca" Sanches contou que pagou 1200 reais num C64 com drives, sem monitor, e Flávio disse que só achou um no Brasil por 3 mil reais.
Felipe "Juca" Sanches citou uma página do Jornal da USP de agosto de 2002 que menciona os 30 anos do Patinho Feio e perguntou qual foi a data exata da inauguração do computador na USP.
As lives seguintes, sobre a engenharia reversa do chip de som do MSX Turbo R, foram remarcadas algumas vezes; uma delas não ficou gravada no Twitch. Ficou combinada a transmissão simultânea pelo Twitch de RicBit e pelo Happy Hacking Video Blog, com Felipe "Juca" Sanches como comentarista.
Felipe "Juca" Sanches e Flávio Amieiro marcaram um bate-papo para 16/09 com o tema "o que fazer com o C64 esquecido no armário?", e Felipe lembrou os 50 anos do Patinho Feio em 2021/2022. Felipe publicou o vídeo "Bate-papo sobre Commodore 64", que teve também a participação de Leandro Lameiro. Depois do vídeo, Flávio Amieiro perguntou como os cartuchos de Mega Drive com modem se conectavam à linha telefônica.
Flávio Amieiro descreveu o espaço coletivo de oficinas KAOS, em Berlim, e Felipe "Juca" Sanches citou o Artisan's Asylum, perto de Boston. Flávio comentou que custo, frete e prazo de entrega dificultam experimentar com hardware no Brasil, e Ismael Luceno concordou que a falta de recursos é o maior fator.
Felipe "Juca" Sanches contou que deixou emprestado ao "museu" de computação do LASSU, na POLI-USP, o CP-500 que usou para estudar os circuitos e emulá-lo no MAME, e linkou o tópico de novembro de 2015 sobre esse estudo. Erin Pinheiro linkou um sketch de Arduino Mega para ler o teclado do CP-500, de cerca de 5 anos antes segundo o GitHub.
Erin Pinheiro relatou que o MAX232 da plotter esquenta muito de vez em quando sem curto aparente e volta a funcionar depois de desligado por um minuto; também houve cheiro de queimado, mas ao abrir o aparelho não achou capacitores estufados ou vazando, e a plotter continuou funcionando.
Felipe "Juca" Sanches divulgou a sessão 13 do Workshop de Programação C e Assembler para MSX, em que Parn explica o PSG.
L. compartilhou um tweet de Eduardo Maçan sobre um console Flashback da TecToy. Felipe "Juca" Sanches comentou que se trata apenas de um emulador mal feito, e Erin Pinheiro observou que a linha Flashback existe desde 2004.
Respondendo a Flávio Amieiro, Felipe "Juca" Sanches compartilhou um link da Folha de S.Paulo de 1995, um post do Blog TecToy, a página na Sega Retro e o manual do cartucho Telebradesco Residência. Erin Pinheiro perguntou se ele não era só um Mega Net com ROM brasileira, e L. respondeu que basicamente sim. L. contou que comprou um lacrado há quase 20 anos, que deve estar na casa da mãe, e citou o Pense Bem para Mega Drive, cuja ROM nunca encontrou. FTMaciel sugeriu emular o lado do servidor, e Felipe disse que hoje o cartucho é anunciado por 500 reais.
A partir de um artigo sobre as distribuições Linux de 1992, o grupo falou de interfaces retrô em sistemas atuais: L. lembrou que Motif e CDE hoje são livres, Ismael Luceno indicou temas no estilo CDE/Motif, e Erin Pinheiro sugeriu o WindowMaker, que segundo L. foi criado por um brasileiro. Ismael Luceno contou que preserva gerenciadores de janelas antigos na distribuição Source Mage.
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.
Shideravan comentou que, durante a reserva de mercado, nenhum fabricante nacional clonou o C64, e que, pelo que viu de um engenheiro da Prológica, as empresas não queriam pagar a importação de um C64 para fazer a engenharia reversa. Felipe "Juca" Sanches atribuiu o domínio do MSX a ser uma plataforma aberta com chips fáceis de conseguir. Leonardo Roman observou que o C64 tem muitos chips custom que os taiwaneses não clonaram, e que os chips custom do TK3000 são idênticos aos dos clones taiwaneses do Apple IIe.
Felipe "Juca" Sanches explicou o projeto: o driver incompleto do KN5000 no MAME fica no branch technics_keyboards e ainda mostra tela preta, enquanto ele porta as ferramentas GNU (binutils, talvez o gcc) para o TOSHIBA TLCS900. O teclado tem duas CPUs TOSHIBA (uma para a interface e os periféricos, outra para o som), dois DSPs, um gerador de som custom, um controlador de disquete e um controlador VGA; o service manual traz o circuito completo. Também comentou drivers de teclados Ensoniq no MAME e a tentativa de emular o GranTrak10. Shideravan lembrou que a CPU é usada no Neo Geo Pocket, e Felipe disse esperar que o toolchain ajude o homebrew desse console.
RicBit contou que o diretor da TecToy na época do Zeebo é hoje seu chefe, mas que ele não colaboraria porque os direitos são da TecToy, e que já tinha perguntado sobre o assunto. Felipe "Juca" Sanches perguntou se ele poderia repassar a ideia aos detentores dos direitos. Shideravan defendeu explicar que o objetivo é preservação e uso educacional e citou o interesse recente pelos relançamentos da TecToy, como o Mega Drive e o Pense Bem.
Thaís Blue Bunnies compartilhou a notícia de youtubers que acharam 100 mil dólares em jogos antigos numa casa abandonada e perguntou se apareceria alguma ROM rara. Shideravan achou improvável, porque esses itens foram parar com colecionadores privados. Felipe "Juca" Sanches também achou improvável e disse que itens raros sem dump costumam aparecer com pessoas envolvidas no desenvolvimento dos jogos, não com colecionadores comuns.
Felipe "Juca" Sanches explicou que implementa o disassembler do TLCS900 no binutils usando a tabela de opcodes do datasheet e compara a saída com o disassembler do MAME, testando com a ROM de boot do KN5000. Disse que deduziu o mapa de memória juntando o esquemático do service manual com a rotina de boot que configura os chip selects; por enquanto o driver usa um mapa estático. O teclado custava 5 mil reais em 1996.
Ismael Luceno compartilhou o FPGASID, reimplementação do SID em FPGA, uma das poucas com os filtros em analógico. Shideravan perguntou por um teclado só de entrada para o PC, e os participantes indicaram controladores MIDI USB. Felipe "Juca" Sanches sugeriu usá-los com os drivers de teclados do MAME, disse que provavelmente usaria o próprio KN5000 como controlador MIDI durante o desenvolvimento do driver e contou que comprou o teclado no Mercado Livre, junto com um segundo quebrado para dumpar as ROMs.
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 compartilhou o wiki do tripleoxygen sobre o Zeebo, e Felipe "Juca" Sanches achou no mesmo site os dumps da flash. Felipe identificou código ARM a partir de 0x140800 e explicou o padrão: o campo de condição nos bits mais significativos de cada instrução de 32 bits dá bytes 0xE?/0xF? a cada 4 bytes. Shideravan achou o SDK do Zeebo no Internet Archive, com documentação dos periféricos e fotos da parte de trás da placa. Felipe analisou a planilha memory_map.ods (a flash NAND talvez fique em 0xa0a00000) e telas de jogos encontradas nos dados, que Shideravan associou a registros do no-intro.
Shelton Ribeiro se apresentou como colaborador da revista Nation 64 e participante de um grupo de entusiastas do Zeebo, e contou que tenta obter material com um ex-funcionário da TecToy. Shideravan postou fotos da placa sem a blindagem de RF. Erin Pinheiro comentou que, pelo que leu, a tela branca é comum e pode ser defeito no eMMC, que pode ser trocado por um cartão SD, e Shideravan indicou a página de conserto de Zeebos do tripleoxygen. FTMaciel ofereceu a Erin um J-Link.
Felipe "Juca" Sanches encaminhou uma mensagem de Augusto Almeida sobre Westen House, jogo de 2021 para MSX, e Pablo Vasques Bravo-Villalba citou o autor, Santiago Ontañón. Shideravan perguntou se a licença Apache-2.0 permite redistribuir o binário no Datassette, e Felipe confirmou. O jogo não rodou no ares, e Pablo explicou que é uma ROM linear de 48 kB que deve ficar visível de 0x0000 a 0xbfff.
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.
Flávio Amieiro mediu o C64: o pino de reset do 6510 está em 1,6 V, então a CPU provavelmente fica em reset permanente, apesar de o 556 que gera o pulso parecer normal; mediu também 4,5 V AC na porta de usuário. Ele e Felipe "Juca" Sanches discutiram se vale trocar os capacitores e por que medir tensão no circuito é confiável, mas medir resistência ou capacitância não. Felipe citou o mesmo receio ao ler ROMs com clipes na placa.
Felipe "Juca" Sanches contou que uma pane no HD do notebook fez o histórico do shell voltar três semanas; o código estava em git público. Uma imagem postada antes no grupo lembrou a ele o comando de disassembly com binutils, e ele concluiu que precisa documentar melhor seu trabalho num lugar acessível ao público.
RicBit modelou no OpenSCAD um cabo para o Turbo R, com DIN8 de um lado e 6 BNC do outro. Discutiram os bugs do OpenSCAD: RicBit atribuiu os erros a aproximações por uso de float, depois localizou a falha na CGAL, a biblioteca de geometria usada pelo OpenSCAD, e concluiu que o melhor é refazer do zero. Felipe "Juca" Sanches citou a impressora 3D Metamaquina 2, projetada em OpenSCAD com rodrigopitanga, e L. citou o Antimony.
L. compartilhou o repositório com o código-fonte do port de Pinball Fantasies para MS-DOS e perguntou se Felipe "Juca" Sanches o tinha enviado ao archive.org, o que ele negou. L. também compartilhou o acervo digitalizado da revista BYTE no vintageapple.org, que Shideravan sugeriu como material para o Datassette.
Felipe "Juca" Sanches encaminhou uma mensagem de L. com o PR que adiciona suporte a skins do WinAmp ao SerenityOS, começou a compilar o sistema e perguntou se ele poderia servir de base para um sistema livre no KN5000. L. respondeu que o SerenityOS roda em x86/x64, com port para ARM começando, e perguntou se a CPU do teclado tem MMU. Felipe concluiu que talvez seja melhor fazer do zero, mas que é cedo para pensar nisso.
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.
A partir de um tweet sobre Donkey Kong compartilhado por Felipe "Juca" Sanches, o grupo discutiu a ligação do projeto inicial do jogo com Popeye: L. relacionou os barris de óleo a Olívia Palito (Olive Oyl), e Shideravan sugeriu que o martelo ocupava o lugar do espinafre. Pablo Vasques Bravo-Villalba confirmou que a palavra japonesa para espinafre está escrita ao lado do item.
Felipe "Juca" Sanches compartilhou uma reportagem da Thames Television de 1984 sobre computadores domésticos japoneses.
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.
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.
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.
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.
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.
Shideravan localizou no Datassette o manual do Montador do Patinho Feio, citado na live. Juca confirmou que era esse o documento e que é de 1977. Disse que ele contém todo o conjunto de instruções e que foi a base para o driver do Patinho Feio no MAME.
Shideravan perguntou quais dos dumps de Zeebo encontrados antes eram da BIOS. Juca lembrou que tinha examinado o arquivo 1.1.2.bin, que parecia monolítico. Shideravan indicou uma versão separada em partições, e Juca sugeriu concatenar as partições e comparar o checksum com o do 1.1.2.bin.
Juca e depois Flávio Amieiro compartilharam uma matéria da Jacobin sobre o microcomputador de 8 bits de Antonić, projetado na Iugoslávia nos anos 80. L. lembrou que na Hackaday Supercon em Belgrado houve um crachá que era um "Galaxija" emulado, projetado com participação de Antonić e baseado no uBASIC de Adam Dunkels. L. também cogitou portar o uBASIC para um leitor de e-mail que tem.
Juca perguntou como o MS-DOS carrega e executa um .EXE e como se roda um programa maior que o espaço de endereçamento de um segmento. Kretcheu indicou o pev. Ismael Luceno explicou o cabeçalho do .EXE, a carga de segmentos e os loaders do DJGPP e do FreeDOS. Juca descreveu a ideia de carregar uma mesa do Pinball Fantasies sem o MS-DOS, substituindo as chamadas do DOS e da VGA BIOS, para fazer do jogo o firmware de uma placa controladora de pinball. A ideia seria validada com um emulador da placa num fork do MAME. RicBit sugeriu um emulador num Raspberry Pi, e Ismael lembrou a questão do copyright.
Juca encaminhou um vídeo sobre a história da Cobra. Leonardo Roman comentou que o sistema operacional SOX se perdeu, e L. indicou a tese de Marcia Cardoso sobre a busca pelo SOX. Juca disse que precisa terminar o levantamento dos esquemáticos do Itautec I7000 para completar a emulação no MAME antes de procurar um museu com um Cobra. Acrescentou que o Patinho Feio ainda está mal emulado. Deleted Account perguntou se a USP ainda tem capacidade de fabricar chips.
Juca começou o HexItch, clone em Python e curses do HexIt, editor hexadecimal proprietário do MS-DOS, e o programou em quatro lives no YouTube. Ele planejava usar o pybfd3 para desmontar binários de várias arquiteturas. Depois, Ismael Luceno passou a contribuir com o modo de código (CodeMode) e a navegação e enviou um pull request.
Juca encaminhou uma imagem de um suposto "Zeebo 2". Pablo Vasques Bravo-Villalba identificou que se tratava de uma foto retocada do celular TecToy On, e Shideravan não encontrou nada no site da TecToy. Shelton Ribeiro contou que a TecToy mudou de controle, que Stefano e outros funcionários saíram e que a licença da Sega não foi renovada. Houve ainda relatos sobre a atuação da TecToy junto à Sega, como a fonte interna no Master System e o port de Street Fighter para o console.
Ismael Luceno sugeriu que Juca marcasse seus repositórios com a tag da Hacktoberfest. Juca respondeu que se alinha ao Movimento do Software Livre, não ao Open Source. Ismael defendeu participar para apresentar o software livre e comentou a pouca influência das distribuições livres e as preocupações com snap, flatpak, dbus, systemd e Wayland.
Shelton Ribeiro informou que o dump do Street Fighter Alpha do Zeebo vazou, junto com jogos de celular e jogos inéditos. Compartilhou pastas e uma planilha com os jogos testados (Zwell, BREW). Discutiu-se se o jogo é um emulador de CPS2 com a ROM do arcade ou um port. Juca sugeriu procurar trechos da ROM de arcade dentro do dump e testar a troca da ROM por outro jogo de CPS2.
L. compartilhou um exemplo de decapagem de chips com laser, perguntou pela cortadora a laser do Garoa e sugeriu testar com CIs velhos. Juca lembrou de uma tentativa parecida no Garoa e citou os Z8 que tem guardados como candidatos. Shideravan questionou como garantir que nenhuma informação se perca no processo.
Juca compartilhou o PDF do livreto Pense Bem Especial Disney Hércules. Shideravan observou que esse material ainda não estava no Datassette.
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.
Partindo do 68000 e das máquinas Lisp, discutiu-se arquiteturas de computador de linguagem de alto nível e se é viável fazer análise sintática em hardware. RicBit contou ter feito um analisador sintático em FPGA no chip de som do Dona Barata e citou as máquinas de Mealy. Juca descreveu o projeto AnotherWorld_JAMMA, uma CPU que executaria o bytecode da VM do Another World, com duas abordagens. A primeira usa esquemáticos em KiCad de uma CPU microprogramada; a segunda, três Z80 e um esboço de driver de MAME.
Flávio Amieiro compartilhou o Picoputer, que usa os PIOs do Raspberry Pi Pico para simular Transputers. Juca contou que o mestrado de Marcelo Zuffo (1989–1993) foi a placa multitransputadora gráfica TRGR_01, feita com Roseli de Deus Lopes. Ismael Luceno comentou a ordem de bytes mista do PDP-11.
Juca compartilhou a notícia da morte de Hiroshi Ono, pioneiro da pixel art na Namco, aos 64 anos.
Shideravan perguntou sobre gravadores de EEPROM baratos. Juca e Ismael Luceno apontaram as limitações de pinos e de tensão. Leonardo Roman e Ismael indicaram o TL866II Plus como a melhor opção de custo-benefício. Foram citados o firmware livre open-tl866 e a diferença de preço entre o AliExpress e a Santa Ifigênia.
Juca encaminhou dois vídeos sobre samplers de áudio do Amiga, um deles sobre música dance de baixo orçamento em 1990.
Augusto Almeida questionou a afirmação, feita na lista msxbr, de que jogos convertidos do ZX Spectrum para MSX escrevem na porta 0xFE. RicBit buscou o padrão d3 fe no pacote MSX Mania 70 e achou ao menos um trecho de código com out (FE),A. Como essa porta corresponde ao mapper nos MSX que o têm, um jogo assim pode funcionar num MSX1 e falhar num MSX2+. RicBit também confirmou que o drive do CP-500 usa o mesmo controlador do MSX. Augusto comentou as incompatibilidades do TK90X com o ZX Spectrum.
Hugo (Agaelebê) compartilhou uma análise técnica do Yamaha DX7. Juca contou que usa o seu DX7 como controlador MIDI de um clone do Minimoog Model D.
Augusto Almeida compartilhou uma entrevista com o programador Mr. Hyde e demos do grupo Andromeda, do Amiga. Juca mostrou obras de Norman McLaren, John Whitney e Larry Cuba; o Calculated Movements, de Cuba, foi feito num Datamax UV-1 com Z-Grass. Juca propôs emular o Datamax UV-1 para rodar o código original e indicou esquemáticos da máquina. L. compartilhou um filme da Marinha americana sobre computadores mecânicos de controle de tiro.
Juca divulgou a liberação do código-fonte das engines de Little Big Adventure 1 e 2 sob a GPLv2, sem os assets do jogo. Mencionou o LBA3 em desenvolvimento, e Ismael Luceno comentou o pouco valor comercial de muitas engines.
Juca compartilhou uma foto da professora Edith Ranzini ao lado do Patinho Feio. Hugo (Agaelebê) perguntou sobre a escala da réplica do painel feita por Juca. Juca explicou que ela é proporcional, baseada em fotos, com cerca de 60% do tamanho real e botões proporcionalmente maiores.
Juca compartilhou uma reportagem com vídeo do sistema GRASS sendo carregado num PDP-11/45 para rodar o código original da sequência da Estrela da Morte de Star Wars IV. Propôs abordar o Electronic Visualization Laboratory da Universidade de Illinois, em Chicago, para obter os dumps e emular a máquina no MAME. Hugo (Agaelebê) chamou Aylons Hazzud, que se ofereceu para ir lá pessoalmente. RicBit lembrou que gostaria de ver o código de controle da nave Gozma, de Changeman.
Juca compartilhou a notícia do pedido de remoção via DMCA feito pela Adobe contra um projeto que mantinha o Flash Player. Pablo Vasques Bravo-Villalba resumiu os argumentos do autor e, com base no README do projeto no GitLab, perguntou se binários da Adobe eram redistribuídos.
A partir de uma matéria da Wired sobre colecionadores que encontram dados antigos, os participantes relataram achados: um HD de 386 com arquivos de 1997, fitas BETACAM-SP com gravações dos anos 90, slides fotográficos e fitas D/CAS vindas da Alemanha. Discutiu-se também a dificuldade de apagar dados em SSDs, inclusive com criptografia de disco inteiro.
Pablo Vasques Bravo-Villalba compartilhou um vídeo de reparo da placa do arcade Pole Position, da Atari, que usa um Z8000 e um Z80, com análise dos esquemáticos.
Temas: Mines, o campo minado coletivo e multiplataforma (64), Os 50 anos do Patinho Feio (12), O sintetizador de Guido Stolfi (8), Another World, Pense Bem e outros projetos de engenharia reversa (16), MAME: drivers, propostas e organização do código (15), Equipamentos brasileiros, dumps e documentação (9), Debates sobre emulação, preservação e código aberto (18), História dos videogames e homebrew (10), Hardware, restauração e instrumentos musicais (19), Comunidade, eventos e links (12)
Felipe "Juca" Sanches encaminhou, a partir de uma postagem de P. M, matéria do Hackaday sobre um emulador do OBP, computador de voo espacial dos anos 1960; P. M foi adicionado ao grupo nessa ocasião, o que gerou confusão com Pedro de Medeiros 👾. Mais tarde (#17850) Felipe explicou que a postagem original fora feita no grupo de Exploração Espacial do Garoa Hacker Clube.
Depois de Augusto Almeida mencionar um MSX 2 à venda no grupo Mercado Retro, um participante contou que comprou um MSX Hotbit que precisa de recap e apresenta interferência na tela ao inserir cartuchos; Augusto Almeida apontou possíveis causas (RF/AV ou fonte), indicou o Veim dos Games para o serviço e alertou para capacitores falsificados. P. M perguntou quem troca baterias de cartuchos de Game Boy; Augusto indicou novamente o Veim dos Games e FTMaciel se ofereceu para fazer o serviço pelos Correios.
A partir de um vídeo sobre jogos super scaler (encaminhado por Felipe "Juca" Sanches), Pablo Vasques Bravo-Villalba e Augusto Almeida compararam Power Drift, Galaxy Force II, Hard Drivin' e Winning Run e discutiram se o Saturn foi pensado inicialmente para 2D. Shideravan argumentou que o PlayStation se diferenciou por ser projetado para polígonos texturizados e explicou que o PS1 usa inteiros nos vértices, o que causa tremor e quebra de texturas; Shelton Ribeiro citou o 3DO e Doctor Hauzer. L. compartilhou o FPS Final Assault para Atari 800 e um vídeo sobre a história dos gráficos.
Discussão sobre o console Playdate, a partir de um vídeo compartilhado por Shelton Ribeiro; Shideravan disse que a tela era e-ink, Erin Pinheiro 🐿 apontou que é memory LCD e Pablo Vasques Bravo-Villalba detalhou que se trata do Memory LCD da Sharp. A conversa seguiu para a ideia de que limitações de hardware estimulam a criatividade (NES, Game Boy, Katamari), com RicBit indicando um texto de seu blog sobre o tema. Augusto Almeida lembrou a demo Heaven Seven, com raytracing sem GPU.
Felipe "Juca" Sanches compartilhou uma antiga propaganda japonesa de Pole Position para Atari 2600, e L. observou que o console mostrado era o Atari 2800, versão japonesa.
Augusto Almeida compartilhou vídeo da restauração de uma placa do arcade Bazooka, da Taito do Brasil, feita pela Arcade Solutions; Felipe "Juca" Sanches destacou que se trata de uma placa 100% TTL, sem CPU, e Augusto acrescentou que o mesmo vale para Speed Race e outros jogos antigos.
L. e Felipe "Juca" Sanches compartilharam a thread e o artigo de Ken Shirriff sobre a engenharia reversa do chip de som do Yamaha DX7 a partir de fotos do die; Felipe comentou que tem um DX7 e mostrou uma gravação feita com ele em janeiro de 2020.
Diante da sugestão de montar um Raspberry Pi num Pense Bem quebrado, Felipe "Juca" Sanches disse que já fez algo parecido com ATmega e que o Pense Bem 2017 é justamente um "arduino" dentro da carcaça do Pense Bem; mostrou um vídeo de primeiros experimentos de programação nesse modelo.
Felipe "Juca" Sanches divulgou a transmissão ao vivo "Lesser Played Arcade Games in MAME", e Augusto Almeida comentou que Haze sempre faz essas lives.
Pedro de Medeiros 👾 compartilhou o artigo de marcan sobre hacking e upgrade do sintetizador Korg Kronos; Augusto Almeida, uma notícia sobre o esforço do Japão para eliminar o uso de disquetes em órgãos públicos.
Shideravan encontrou numa revista argentina dos anos 1990 (Supergames nº 1, cuja capa anunciava um cartucho de brinde) um anúncio do Super NASA, clone de Super Nintendo, e publicou o scan no Datassette; houve um esclarecimento sobre o formato CBR/CBZ. O mesmo fabricante fez o NASA New 16 Bit, clone de Mega Drive, cuja desmontagem em vídeo levou à discussão de como clones obtinham chips custom; a hipótese mais aceita foi a de lotes excedentes remarcados por fábricas da Ásia. Também se falou da Dynacom e de seu Megavision.
Conversa sobre o Virtual Boy e sua biblioteca de 14 jogos no Ocidente (Wario Land, Teleroboxer, Panic Bomber). RicBit contou que tem um Virtual Boy, só com Mario Tennis, e que pretende abrir o cartucho para fazer um leitor de ROM.
Felipe "Juca" Sanches contou que tem 29 Pense Bems e planeja uma instalação artística com todos em rede. Explicou que o modelo dos anos 1980 usa um Zilog Z8 (não Z80) e que, ao tentar extrair seu firmware por um suposto modo de teste de fábrica, não conseguiu o dump e queimou o chip. Disse que pensa em trocar o Z8 por um ATmega numa pequena placa adaptadora e mostrou em vídeo um Pense Bem funcionando como relógio, ainda sem a lógica de despertador.
L. descreveu seu relógio de tubos nixie, montado a partir de um kit, em que trocou o microcontrolador original (com RTC que atrasava) por um ESP8266 sincronizado via NTP e com firmware em Lua; a conversa seguiu para displays VFD, incluindo modelos soviéticos.
Felipe "Juca" Sanches propôs fazer o disassembly do utilitário Tecnoponta Park, para MS-DOS, para descobrir se ele realmente estacionava o cabeçote do disco rígido, e indicou o binário no Datassette. Ismael Luceno citou chamadas de interrupção relacionadas a parking (inclusive em drives ESDI), observou que o programa é um EXE grande, aparentemente escrito em assembly, e disse que tentaria analisá-lo com o r2ghidra; Augusto Almeida sugeriu IDA Pro ou Ghidra.
Julio indicou um programa de pós-graduação da UFS com a linha de pesquisa "Arqueologias e mídias eletrônicas"; Felipe "Juca" Sanches observou que o site não oferece link direto para essa página.
Felipe "Juca" Sanches esclareceu que avisos pontuais de venda são aceitáveis, mas que adicionar pessoas só para vender foge ao escopo do grupo; Leonardo Roman indicou o grupo Mercado Retro no Telegram.
A partir de um vídeo de Commodore 64 emulado num Arduino (lento, sem cor nem som), Felipe "Juca" Sanches lembrou a dificuldade de rodar o hello world do Patinho Feio emulado num Arduino. Flávio Amieiro destacou os blocos PIO do RP2040 para gerar vídeo por bit-banging, e L. citou a geração de NTSC via I2S/DMA no ESP8266 e no ESP32, além de relatar as dificuldades com a arquitetura Xtensa ao portar o Zephyr para o ESP32.
Leonardo Roman compartilhou a análise do Retro Chip Tester Pro do canal de Adrian Black. Augusto Almeida destacou dois vídeos do canal: um gerador de NOP para testar o 6502 de um drive 1541 e o ROMulator, que substitui RAM ou ROM de micros 6502. Augusto também indicou a primeira parte de uma série de montagem fio a fio de um Apple II.
Felipe "Juca" Sanches compartilhou as partes III e IV da série de Ken Shirriff sobre o Yamaha DX7, sobre a ROM log-seno e sobre como os algoritmos são implementados; um participante destacou que o autor lê o padrão de bits da ROM diretamente no die.
A partir de um post de Ken Shirriff enviado por L., um participante relatou hábitos de programadores de mainframe vindos da era dos cartões perfurados (o EJECT do COBOL, as "listagens") e a preferência dos veteranos pelos Burroughs. Felipe "Juca" Sanches lembrou que um Burroughs foi usado no início do projeto Patinho Feio, antes de existir montador no próprio computador; também foi citado o emulador Hercules.
Augusto Almeida encaminhou uma postagem sobre Juan, com fotos de um AS-1000 funcionando e com as ROMs dumpadas. Felipe "Juca" Sanches pediu as ROMs para cadastrá-las, e FTMaciel sugeriu enviá-las também ao Datassette; Augusto contatou Juan e as ROMs foram compartilhadas no grupo.
Felipe "Juca" Sanches compartilhou um antigo cartão SD da ADATA com display que mostra o espaço usado, e o grupo discutiu como o firmware leria o sistema FAT; ele disse que gostaria de emular esse firmware e escrever um substituto que mostre o nome do disco. A conversa passou para pendrives e cartões falsificados e perdas de dados por falta de backup.
Felipe "Juca" Sanches compartilhou um microprocessador feito com timers 555 e um 555 gigante; L. lembrou um concurso de circuitos com 555, do qual, segundo ela, Jeri Ellsworth teria sido organizadora ou jurada. Flávio Amieiro citou um ATtiny que emula um 555, e Ricardo Bánffy, o Trollduino.
Pablo Vasques Bravo-Villalba mostrou a foto de um instrumento sem marca, fotografado por Rafael Rigues numa Casa da Memória e estimado por ele como do início dos anos 1970; Leonardo Roman o identificou como um órgão Minami.
Ismael Luceno disse que voltaria ao projeto hexitch, e Felipe "Juca" Sanches propôs uma live; Ismael acabou se dedicando a fazer o LibreOffice compilar sem hacks.
Shelton Ribeiro compartilhou um vídeo do port do Tomb Raider (OpenLara) para 3DO. Ismael Luceno observou que o motor original rodava num SH-2 de 28 MHz com 2 MB de RAM e 1,5 MB de VRAM. A conversa passou para a viabilidade de um Tomb Raider no Nintendo 64 (tamanho do cartucho, compressão de áudio, microcódigo da Factor 5) e para a história de Dinosaur Planet, Resident Evil Zero e outros títulos. Também se falou da falta de créditos a desenvolvedores em jogos; Pedro de Medeiros comentou que empresas japonesas omitiam ou trocavam os nomes dos funcionários nos créditos para dificultar que fossem contratados por concorrentes.
Felipe "Juca" Sanches comprou um Switch OLED e perguntou se há desenvolvimento homebrew na plataforma. Shideravan descreveu a cena: CFW instalados por meio de exploits, como o fusee-gelee, ports de jogos e emuladores, e diferenças entre revisões de hardware. Felipe mencionou que pretende retomar o port do binutils para o TLCS900, processador do teclado Technics KN5000.
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 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.
Diante das notícias de um possível bloqueio do Telegram no Brasil, Felipe "Juca" Sanches perguntou se o grupo pretende manter um registro permanente do que se conversa ali. Foram citadas a exportação de conversas, o uso de proxy ou VPN e o Discord como alternativa. Felipe defendeu o valor das informações dadas informalmente em conversas e mostrou capturas de tela como exemplo.
L. compartilhou um artigo sobre Okuda Hiroko, funcionária da Casio por trás do riddim "Sleng Teng". Felipe "Juca" Sanches perguntou se era Aylons Hazzud quem inspecionava os circuitos de um Casio desse tipo no Garoa uns 10 anos antes, e Aylons confirmou. Erin Pinheiro contou que levou o teclado, que estava abandonado no Garoa e com vazamento de bateria, e o limpou.
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 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.
L. compartilhou uma postagem sobre o VT-69 e comentou que as carcaças são feitas uma a uma, impressas em 3D. Shideravan perguntou se o monitor é LCD e achou pouco prático se não for CRT; Felipe "Juca" Sanches concordou e disse esperar que a caixa permita instalar um CRT.
L. encontrou um repositório com programas publicados na revista Spooler. Felipe "Juca" Sanches observou que ele cobre apenas os disquetes das edições 28 a 39. L. examinou o programa de compressão SHOCK, da edição 35, e o comparou com o descompressor que está escrevendo.
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 combinou uma troca com o ilustrador Alekhine Z: um desenho em SVG do Pense Bem para o simulador em JavaScript, em troca de um timer de xadrez programado por ele (chess-timer). O ilustrador mandou prévias e depois recomeçou o desenho sob outro ponto de vista. Felipe e L. discutiram mostrar os livros de atividades ao lado do simulador e detectar automaticamente as regiões das perguntas.
Felipe "Juca" Sanches indicou a Aylons Hazzud uma issue que pergunta sobre um port do AnotherWorld_FPGA para o MiSTer (placa DE-10 Nano) e uma postagem sua no fórum do MiSTer, ainda aguardando aprovação. Aylons pediu tempo para pensar.
Felipe "Juca" Sanches compartilhou o vídeo da sua palestra na GambiConf 2021.
Felipe "Juca" Sanches publicou o simulador do Pense Bem com o novo desenho em SVG, mantendo os ids de segmentos do simulador original, e corrigiu o algoritmo de cálculo das respostas. Ele próprio apontou problemas de áudio no navegador do celular e serrilhado na renderização do SVG; pitanga relatou que no seu navegador o áudio ficou razoável. Quando L. ofereceu acesso de escrita ao repositório, Felipe propôs migrá-lo para a organização ArqueologiaDigital. Em resposta a Toy, indicou a página labs.hardinfo.org/pb/ com detalhes sobre o simulador.
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 consertou o AnotherWorld_VMTools, que voltou a gerar o disassembly do bytecode da versão MS-DOS. Também atualizou a VM do Another World no seu branch do MAME, que ficou funcional exceto por um bug no scroll vertical, e começou a implementar save states (faltava salvar o estado do tracker de música). Compartilhou um SVG da code wheel do jogo, montado em 2017. Indicou a Toy issues em aberto, entre elas a comparação das versões Amiga e MS-DOS, e abriu novas issues no AnotherWorld_VMTools.
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.
Thaís Blue Bunnies compartilhou a notícia de que um bombardeio russo destruiu um museu de computadores antigos na Ucrânia. Shideravan comentou que algumas dessas máquinas foram documentadas no MAME, mas talvez não todas, e perguntou a Felipe "Juca" Sanches, que não soube dizer.
Felipe "Juca" Sanches refatorou o codificador/decodificador de polígonos e passou a marcar com labels JUNK as rotinas inalcançáveis do bytecode. Começou a extrair assets da ROM de Mega Drive, cujo bytecode difere do da versão MS-DOS, e desempacotou com binwalk o instalador .sis de uma demo do port para Symbian, com polígonos ligeiramente diferentes. Por fim, reorganizou o toolchain com um diretório por release, contendo labels, código vestigial, rotinas de assets e checksums.
Felipe "Juca" Sanches repassou uma mensagem de Eduardo Loos com um port em andamento de Warcraft para o ZX Spectrum. Pablo Vasques Bravo-Villalba explicou a limitação de duas cores por bloco de 8x8 e comparou com MSX1 e MSX2. Leonardo Roman citou o motor Nirvana, e Pablo distinguiu o Nirvana (cores trocadas a cada duas linhas) do Gigascreen (alternância rápida de quadros).
Flávio Amieiro compartilhou o vídeo "Harder Drive", uma das cujas implementações usa o Tetris do NES. Erin Pinheiro recomendou os demais trabalhos do SIGBOVIK.
Felipe "Juca" Sanches descreveu a VM do Another World: 256 palavras de 16 bits de RAM, 64 threads cooperativas e assets em barramentos somente leitura. Discutiu um superset com instruções para manipular os dados dos barramentos de assets, a ideia de um Tetris com símbolos da code wheel usando o assembler do AWVMTools e a viabilidade de portar a VM para o Vectrex; Erin Pinheiro sugeriu um microcontrolador no cartucho. Ismael Luceno sugeriu uma segunda VM para gerar assets, ligada por SFRs.
RicBit mostrou o "expertinho", miniatura funcional de um Expert em construção, impressa em FDM para testar a escala; a versão final deve ser feita em resina. O protótipo roda num Jetson Nano, e a versão final deve usar um Raspberry Pi Pico com emulador próprio. Para o teclado, RicBit considerou usar um 74145, como no circuito original, o que reproduziria a mesma matriz. Felipe "Juca" Sanches sugeriu cartuchos falsos que só indiquem o jogo a carregar e lembrou a ideia de usar cartões SD para imitar as fitas perfuradas do Patinho Feio.
Flávio Amieiro compartilhou um leitor de fita perfurada de hardware livre, com autocalibração e saída USB, e perguntou se ainda há fitas do Patinho Feio a ler. Felipe "Juca" Sanches confirmou que sim e cogitou encomendar as placas.
Felipe "Juca" Sanches tentou ligar teclados antigos para talvez usá-los como controladores MIDI num órgão Wurlitzer, transformando-o em algo parecido com o Chipophone; outra opção que citou foi trocar o interior do órgão por um controlador MIDI e um módulo de som moderno. Mencionou uma possível mudança para o Reino Unido. Identificou o órgão como Wurlitzer modelo 555, com o sintetizador analógico Orbit III, mapeou a pinagem do teclado do sintetizador e, após Leonardo Roman indicar um site que vende os manuais de serviço, comprou-os e os compartilhou. Identificou placas como o oscilador mestre e o gerador de ritmos digital feito com portas lógicas, e listou quatro defeitos principais. Shideravan montou em .cbz o manual básico do Custom Funmaker a partir de imagens postadas no Facebook.
Shideravan sugeriu usar a VM do Another World para portar a continuação Heart of the Alien, lançada só para Sega CD nos EUA. Felipe "Juca" Sanches disse que, se fizesse um remake, preferiria recontar a história de outro jeito. Ao olhar o código da engine livre hota, com a qual havia jogado, constatou que é um disassembly do original traduzido para C.
A partir de uma notícia compartilhada por Toy, Erin Pinheiro mostrou um vídeo antigo, não divulgado antes, de Doom rodando num terminal de pagamento PAX. Explicou que os terminais Prolin rodam Linux e que bastou compilar o fbdoom; o difícil seria rodar app de terceiros sem assinatura. Sobre o som, disse que no PAX S920 o SDK indica alto-falante e suporte a PCM, mas que não chegou a mexer nisso.
Shideravan questionou a ideia de que consoles baseados em x86 seriam triviais de emular, citando a falta de emuladores maduros de Xbox e PS4. Quando Ismael Luceno atribuiu isso à Microsoft, Shideravan respondeu que a empresa não se opõe e compartilhou matérias sobre Phil Spencer defender a emulação para preservação, além do código-fonte do MS-DOS aberto pela Microsoft. Felipe "Juca" Sanches criticou a qualidade das matérias e argumentou que coleções comerciais de jogos emulados não servem para preservação, que só se faz com emuladores em software livre: para ele, o código-fonte do emulador é a própria preservação. Shideravan acrescentou que um emulador de código aberto funciona como documentação minuciosa do hardware. A conversa passou à abertura do código do Windows e a vulnerabilidades, e Felipe pediu para manter o foco na preservação.
RicBit contou que o autor do no$ lhe escreveu por volta de 1998-99 sem entender como o emulador de MSX de RicBit rodava melhor que o dele, e explicou que a vantagem estava no emulador do VDP, não no da CPU Z80. Shideravan explicou o MSU-1, especificação criada por byuu para simular um SNES-CD, e Anne Isabelle compartilhou a desmontagem do protótipo Nintendo-PlayStation. RicBit procurou o e-mail antigo em seus backups, sem encontrá-lo.
Shideravan apresentou o Spine, emulador de PS4 desenvolvido só para Linux, atribuindo a exclusividade ao sistema do PS4 ser baseado em Linux. Pedro de Medeiros corrigiu que o sistema do PS4 deriva do FreeBSD e contou que os próprios desenvolvedores do Spine comparam o trabalho a uma camada de compatibilidade como o Wine. Segundo ele, a exclusividade se deve à preferência do desenvolvedor-chefe por um software fechado, que promete abrir o código quando estiver mais maduro. Felipe "Juca" Sanches citou a justificativa, lida em uma matéria, de não "diluir o desenvolvimento" em um grupo grande, e Shideravan criticou a decisão do ponto de vista da preservação.
Ao procurar backups antigos, RicBit encontrou o texto humorístico da "Unicomp", que buscava havia anos, e o publicou em seu blog. Segundo RicBit, o texto circulava na Esquina das Listas, primeiro servidor de listas de discussão do Brasil, e seus autores seriam professores de computação da Unicamp.
Pedro de Medeiros sugeriu que o desenvolvedor do Spine poderia estar reagindo ao bullying e assédio na comunidade de emulação. Erin Pinheiro esclareceu que Near (byuu) foi assediado pelo fórum KiwiFarms, e não pela comunidade de emulação, lembrando que o RetroArch fez uma homenagem. Pedro de Medeiros pediu desculpas por não conhecer bem o caso e disse que falava do próprio uso das redes sociais, não de Near. O grupo comentou a perda de Near e o uso de pronomes neutros.
Felipe "Juca" Sanches relatou dificuldades de convivência na comunidade de desenvolvedores do MAME e o receio de enviar pull requests, e Shideravan contou que reduziu sua participação no projeto pelo mesmo motivo. Discutiram a mudança para o GitHub, que expôs mais o projeto ao público, o Discord para convidados e a necessidade de políticas de respeito aplicadas a todos os membros. RicBit lembrou o "dilema do bar nazista", L. localizou o texto, e Shideravan considerou a comparação exagerada para o MAME. Felipe pediu para manter o foco do grupo.
Felipe "Juca" Sanches compartilhou seu pull request no MAME que implementa o chip MB4391 como dois MC3340 em um único encapsulamento DIP16.
Ismael Luceno procurou ajuda para portar o gcc-ia32, suporte a x86 de 16 bits no GCC, para o GCC 12, começando pelo modo standalone. Perguntado por Pedro de Medeiros sobre C++17, disse que em teoria seria possível, mas que o runtime é bem mais complexo.
Felipe "Juca" Sanches compartilhou a gravação de sua live no Python Lab do Garoa sobre a máquina virtual do jogo Another World, com participação de João Carlos. L. sugeriu gerar código Python a partir do bytecode, já que o jogo não tem código automodificável, e Felipe sugeriu implementar as instruções de break com yield, aproveitando a multitarefa cooperativa; L. lembrou também de funções async.
Felipe "Juca" Sanches encaminhou a entrevista do site Oldplayers com Luciano Sturaro.
A partir de um vídeo sobre displays segmentados, Felipe "Juca" Sanches mostrou fotos que tirou de displays de mosaico numa estação de metrô de Viena. L. comentou displays flipdot controláveis por protocolo nos eventos do CCC, e FTMaciel e Pablo Vasques Bravo-Villalba lembraram dos painéis eletromecânicos de aeroporto.
Felipe "Juca" Sanches procurava o compilador proprietário da Toshiba para TLCS900, e Leonardo Roman apontou a cópia no archive.org. Felipe disse que não conseguiu rodá-lo pelo Wine e não lembrava como tinha feito isso antes. Também indicou o tópico do fórum sobre desenvolvimento homebrew para o teclado Technics KN5000.
Pedro de Medeiros compartilhou o console caseiro do mitxela, e Flávio Amieiro mostrou o projeto DDC OLED, que usa os pinos I2C do HDMI. Felipe "Juca" Sanches compartilhou um vídeo sobre o firmware livre Rockbox para tocadores de MP3, e João Carlos indicou um console feito com um ATtiny10.
Felipe "Juca" Sanches propôs que os membros programassem juntos um pequeno jogo para uma plataforma retrô e abriu uma campanha de três dias para sugestões de plataforma, além de uma enquete sobre a licença. Foram propostos Game Boy, MSX (com o compilador livre SDCC), Commodore 64, Master System/Mega Drive, V9990/MSX Turbo R e outros. Também se discutiu o uso de C com assembly inline e a decisão de trabalhar com emuladores.
Discutiu-se se dá para reaproveitar código entre Master System e Mega Drive. Erin Pinheiro explicou que o Z80 do Mega Drive costuma servir ao som, mas que o console tem um modo Master System, usado pelo Power Base Converter, em que o Z80 assume o controle, e citou NES/SNES como par mais compatível. RicBit, que já programou para MSX, Master System e Mega Drive, disse que o Master System é basicamente um MSX, mas que no Mega Drive quase não se reaproveita código do Master System porque as RAMs ficam mapeadas em endereços diferentes.
Pedro de Medeiros indicou a ubox-msx-lib e Leonardo Roman indicou a Fusion-C, ambas para o SDCC. Felipe "Juca" Sanches de início rejeitou a ubox pela licença CC BY-NC-SA indicada no site, mas João Carlos viu que o código está sob MIT e Pedro de Medeiros confirmou que só a documentação usa CC. Pedro de Medeiros explicou que a Fusion-C atende o MSX2 e a ubox só o MSX1, e que nenhuma das duas funciona com o SDCC 4.2.0.
A enquete de licença escolheu uma licença livre copyleft, como GPLv3 ou posterior. Na de plataforma, MSX, C64, SNES e MS-DOS empataram, e o PC Engine recebeu apoio fora da enquete. Felipe "Juca" Sanches propôs começar com um campo minado, com a lógica separada de "drivers" por plataforma, e Pedro de Medeiros sugeriu um Lunar Lander como passo seguinte.
O MSX venceu o desempate, e Felipe "Juca" Sanches criou o repositório ArqueologiaDigital/Mines para um campo minado em várias plataformas, com a lógica separada do hardware e desenvolvimento por pull requests. Pedro de Medeiros explicou que a versão nova do SDCC mudou a convenção de chamada, passando até dois parâmetros em registradores, e que __sdcccall(0) mantém o comportamento antigo. Também se discutiu acesso direto ao VDP/PSG versus rotinas da BIOS e se indicaram livros de referência sobre o MSX.
Felipe "Juca" Sanches compartilhou capturas da animação de encerramento de Altered Beast para arcade e um documentário sobre a história do jogo.
O repositório, que de início estava privado, foi tornado público com licença GPLv2 ou posterior. Discutiram-se a estrutura de pastas por plataforma e o uso de Makefile. Felipe "Juca" Sanches escreveu o núcleo da lógica do jogo e a interface ncurses, Pedro de Medeiros o sistema de build e a leitura de teclado para MSX, e Flávio Amieiro a entrada em ncurses. Também se discutiram as dependências hex2bin e makebin e um README por plataforma. Em 31/05 o jogo já estava "jogável" em ncurses, ainda sem detecção de fim de jogo; em seguida vieram PRs para bandeiras e abertura automática de regiões vazias.
Felipe "Juca" Sanches visitou o professor Guido Stolfi e compartilhou fotos da listagem do conteúdo de suas fitas perfuradas da época do Patinho Feio, além dos fotolitos e matrizes desenhadas à mão (1974/75) das placas do sintetizador de Stolfi, entre elas as de interface com o Patinho Feio. Ele está digitalizando o material em TIFF a 300 dpi para um repositório git e indicou a página do sintetizador e um documentário do Sesc em que Stolfi o demonstra.
Pedro de Medeiros e Felipe "Juca" Sanches redefiniram a função wait_for_any_key como input_read: não bloqueante, sem buffer e sem combinações de teclas, com bits para indicar o dispositivo (teclado ou joysticks 1 a 4) e ações como abrir célula, abrir bloco e colocar bandeira. Pedro de Medeiros documentou a função em um PR e, em outro, passou a usá-la, deixando os ports ncurses e MSX2 compilando.
Pedro de Medeiros documentou a função random_number() e implementou a leitura de input no MSX2 (PRs #19 e #20). Felipe propôs reaproveitar a infraestrutura do seu antigo jogo Pixo para a placa JAMMA do GunSmoke, e Pedro explicou as diferenças entre SCREEN 4 (tile-based, com attribute clash) e SCREEN 5 (bitmap com blitter do V9938) no MSX2.
Flávio Amieiro perguntou se o volume de mensagens sobre o desenvolvimento do jogo incomodava quem está no grupo por outros motivos. Felipe abriu uma enquete sobre criar um grupo dedicado, e Flávio sugeriu fixá-la para que quem silenciou o grupo também a visse. Pablo disse ser indiferente: achava positivo um grupo específico, mas não imprescindível.
Felipe abriu uma série de PRs no Mines: ação open_block, correção dos limites de movimento, exibição de todas as bombas ao explodir uma, tecla QUIT, Makefile de nível superior para compilar todas as plataformas e restrição de bandeiras a células fechadas.
Felipe abriu o PR #28 com o port do Mines para o hardware de arcade do GunSmoke, com tiles desenhados no GIMP e convertidos pelo Makefile para o formato de vídeo da placa, herdando o setup do jogo Pixo. Pablo perguntou sobre as especificações de vídeo da placa; ao fim do dia Felipe fez o merge e o jogo já funcionava, ainda com cores incorretas.
Pedro de Medeiros relatou ter aberto um chamado sobre bug no makebin do SDCC e enviou o PR #29 implementando random_number() para MSX, após discutir o intervalo retornado pela função.
Pedro de Medeiros apresentou o terminal kitty, contou que fez um app que usa os recursos desse terminal para exibir imagens e compartilhou um boilerplate de projeto Kotlin Native que fez.
Pedro propôs usar o srecord para gerar arrays C a partir da imagem em SCREEN 5 (4 bpp) para o MSX2. Felipe explicou que no GunSmoke o PNG vira XPM, embutido no programa patch_CGROM, que aplica um patch binário numa ROM original do jogo; L. comentou o tamanho de uma tela SCREEN 5 sem compressão (cerca de 32 KB).
Lendo o driver do GunSmoke no MAME, Felipe aprendeu a programar os sprites, mas verificou que eles são sempre desenhados abaixo da camada de foreground tiles; os background tiles ficam em ROM e servem apenas para fundos estáticos. Abriu o PR #31 com duas formas de destacar a célula atual.
Pedro enviou o PR #32 com o bitmap em ROM para o MSX2, convertido com o conversor online do Jannone, e buscou formas de automatizar a conversão. L. sugeriu um carregador de BMP de 16 cores com ImageMagick, e Pedro lembrou de seu script de GIMP que exporta para GRAPHICS 4 (SCREEN 5).
Felipe planejou tela de abertura e de game over para o arcade, mudança do enum MINE_INPUT_ para valores sequenciais e uso dos DIP switches para configurar a dificuldade. Erin sugeriu headers genéricos com implementações por plataforma, como no fbdoom, e Pedro listou máquinas que poderiam receber ports a partir de um port para MSX1 (Coleco, SG-1000, SVI-318/328 e outras).
Pedro implementou as funções básicas de vídeo do port MSX2 em SCREEN 5 com o comando LMMM do VDP (PR #34). A discussão sobre usar OTIR/OUTI levou RicBit a explicar que o VDP lê a VRAM durante o traço e enfileira as escritas, de modo que escritas rápidas demais durante o traço se perdem, enquanto no retraço é possível escrever sem risco, e a descrever o comportamento do MSX turbo R, do V9938/V9958 e do Master System.
Pedro propôs uma implementação padrão de draw_minefield para plataformas baseadas em tiles; Felipe sugeriu colocá-la no diretório Common com uma pequena API de tiles implementada por plataforma. Pedro também enviou o PR #36 trocando um switch-case por um array de cores no GunSmoke.
Pedro pediu voluntários para redesenhar os gráficos do MSX2, e a conversa passou pelo visual do campo minado do Windows 3.1, por texturas de grama e buracos sugeridas por L. e por ideias de versões isométrica, vetorial (Vectrex) e 3D. L. indicou um campo minado feito para o Master System numa competição da SMS Power.
Após o PR #36, os números passaram a aparecer todos com a mesma cor no GunSmoke. RicBit explicou o teste do código _GSINIT (o LDIR com BC=0), e Felipe corrigiu o problema no PR #37 declarando as áreas INITIALIZED e INITIALIZER, cujos símbolos s__/l__ indicam início e tamanho e permitem copiar os valores iniciais da ROM para a RAM.
Pedro enviou o PR #38, com o port MSX2 lendo o teclado e jogável, embora lento por redesenhar a tela inteira. Felipe apontou os inputs que faltavam (OPEN_BLOCK e QUIT) e propôs refatorar a parte comum entre MSX2 e GunSmoke, o que facilitaria um port para MSX1 em SCREEN 1.
Foi definido o ciclo bandeira, interrogação e célula vazia no botão de bandeira, implementado por Felipe no PR #39. Pedro associou a tecla N ao OPEN_BLOCK no MSX (PR #40), e Pablo comentou as teclas usadas por Konami (N e M) e Compile (Shift).
Pablo desenhou um tileset de 13 cores com grama e pedras, e Pedro o aplicou no MSX2 (PR #41). Felipe apontou problemas de legibilidade no destaque de algumas células e questionou o desenho das minas; Pablo explicou que eram minas terrestres em perspectiva e sugeriu indicar a seleção pelos tiles vizinhos ou por um sprite.
Felipe notou que os números aleatórios não variavam porque a semente era sempre a mesma, no MSX2 (xorshift com semente 1) e no GunSmoke (semeado pelo relógio logo no boot). Pedro passou a usar o relógio de tempo real do MSX2 (PR #44); RicBit indicou a rotina RAND do seu Tetrinet, com polinômio maximal de 16 bits, e recomendou usar Seed = value | 1.
A pedido de Pablo, Felipe compartilhou a ROM atual para facilitar ajustes nos tiles. Discutiu-se como compilar no Windows (make, SDCC, WSL, Python), e Pedro indicou o arquivo mines.png do repositório e sugeriu manter ferramentas compiladas numa pasta tools.
Pedro criou uma interface comum de depuração (PR #45) baseada no dispositivo virtual debugdevice do openMSX, ao qual o programa envia dados com instruções OUT. Num MSX real não há nada nessa porta e as operações são inertes.
Felipe adicionou screenshots aos READMEs dos ports. Pedro apontou a necessidade de atualizar uma única célula da tela, e Felipe enviou o PR #49 com essa função para melhorar o desempenho em sistemas de vídeo lentos.
Felipe divulgou a Flashparty, demoparty argentina, com o vídeo-convite da edição de 2022.
Mensagem encaminhada anunciou o Mine Finder, de Paolo Pugno, versão de campo minado para MSX1 inscrita na MSXdev22. Mais tarde Felipe observou que ele usa todos os tiles para células, sem grade, o que permite um campo maior.
Pedro observou que o SDCC 4.1.0 com --opt-code-speed deixava de atualizar o bit de célula aberta, o que não ocorria com --opt-code-size. Também renomeou os arquivos .z80 para .asm (exceto o crt0) no PR #51.
Pedro perguntou se é difícil alterar os tiles de fundo do GunSmoke. Felipe disse que começou a escrever código para isso anos atrás, talvez sem terminar, provavelmente no arquivo tools/patchBGROM.py, e que, se lembrava bem, os dados não são comprimidos, apenas embaralhados; pediu uma arte para voltar a testar o gerador de ROMs de background numa tela de abertura.
Pedro trocou o srecord pelo MSXbin (PR #52). Felipe notou um erro de digitação no cabeçalho de licença (CC BY-AS em vez de CC BY-SA) e concluiu que, por ser uma ferramenta de build, não há conflito com a GPLv2+ do projeto. Após um merge que quebrou o build por falta do arquivo MINES.SC5, Felipe sugeriu adotar integração contínua.
Depois que Felipe mencionou um bug no open block na borda do campo, L. propôs uma plataforma fuzzer que lê teclas de um arquivo, compilada com o sanitizer de fuzzer e address do gcc, e logo relatou ter encontrado um bug. O primeiro patch não compilou e L. publicou uma segunda versão; depois explicou como o fuzzer muta a entrada conforme os branches executados até provocar um crash com backtrace.
Pedro compartilhou um arquivo de ilustrações do HyperCard. Felipe pensou em transformá-las em um pacote de figurinhas do Telegram, e o grupo discutiu como automatizar isso com um bot e o formato webp.
Pedro e Pablo propuseram células desenhadas com metatiles de 16x16; Pablo calculou que caberiam em 128 tiles e seriam viáveis em Master System e MSX1. Felipe e Pedro compararam como os IDs de tiles são definidos no GunSmoke (simbólicos, extraídos por coordenadas no patchCGROM.c) e no MSX2 (ordem da imagem SC5 em char_codes.h), visando unificá-los.
RicBit sugeriu um modo de dois jogadores, com jogadas alternadas e pontos por casas abertas. Felipe imaginou um campo grande jogado simultaneamente, com territórios de influência, bombardeios no campo do adversário e punições mais leves para erros.
Felipe abriu o PR #61 com o sistema genérico de vídeo baseado em tiles para revisão. Pedro implementou sprites modo 2 no MSX2, com o cursor como sprite (PR #62), corrigiu o Makefile para gerar e apagar mines.h (PR #63) e adaptou o código gerado para o SDCC 4.2.0 (PR #65).
Felipe cadastrou issues no repositório. Pedro constatou que a C-BIOS até a versão 0.29 não implementa leitura de mouse (GTPAD), e RicBit observou que seria simples acrescentar isso à C-BIOS.
Pedro separou build e install no port GunSmoke (PR #70) e criou um workflow do GitHub Actions que gera releases automáticos da ROM MSX2 (PR #71); o GunSmoke ficou de fora por exigir ROMs proprietárias para o patch, e Felipe disse que pretende gerar todas as ROMs sem depender delas. Felipe explicou o mapeamento de inputs no menu do MAME (TAB).
Felipe encaminhou o vídeo da apresentação "Preservação, O Exemplo Brasileiro", de Marcus Garrett e Filipe Veiga, no evento LOAD ZX 40.
Hugo compartilhou reportagem do Estadão sobre o "rei dos sintetizadores". Felipe lembrou de um evento de sintetizadores não convencionais em 05/05/2018, em que o professor Guido Stolfi apresentou seu sintetizador da época do Patinho Feio, e compartilhou fotos.
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 compilou o ia16-gcc para fazer um port para MS-DOS e notou que ele usa um assembler sob a licença OpenWatcom; L. lembrou a opção -m16 do GCC. O port em VGA modo 13h (PR #75) rodou no 386 de Felipe, ainda lento por plotar pixels via BIOS. Felipe tentou compilá-lo no GitHub Actions (PR #76) e abriu issue no build-ia16 sobre o PPA para Ubuntu.
Pablo apresentou protótipos animados com metatiles de 16x16: um estilo clássico inspirado no Windows 3.1, com cursor de mouse, para sistemas com pelo menos 15 cores, e um estilo abstrato que respeita as restrições do TMS9918 do MSX1, com cursor crosshair animado feito de sprites. O grupo discutiu temas, fases com tilesets diferentes e Felipe lembrou seu campo minado hexagonal em JavaScript.
Um patch de L. com escrita direta na memória VGA acelerou o port MS-DOS (aplicado por Felipe no PR #79). L. reduziu o executável com -Os, -flto e UPX, com uma compressão RLE de um nibble por pixel feita para o tileset (PR #88), com reduções no código comum (PR #93) e no próprio port MS-DOS (PR #110) e substituindo o crt0 do compilador (PR #112), chegando a 4,6 KB. Felipe testou no seu 386 e relatou que a versão otimizada ficou muito mais rápida que a anterior.
Felipe abriu o PR #78 com uma versão 3D do Mines em OpenGL e foi corrigindo o modelo dos ladrilhos e o redesenho da cena; restavam as cores e a iluminação, que deixava a cena em tons de cinza. Ao fim do dia fez o merge do PR.
Pedro compartilhou o artigo "Patching an Embedded OS from 1996 with Ghidra", sobre o K2500, e Felipe elogiou o texto.
No PR #87, Pedro moveu código exclusivo do OpenGL para a plataforma, e Felipe questionou a repetição de código. Felipe sugeriu uma struct de ponteiros de função como nos drivers do kernel Linux; L. argumentou que isso tornaria as chamadas indiretas sem benefício, pois há apenas uma implementação por programa.
L. propôs eliminar a dependência dos valores numéricos dos tiles para trocar o switch por uma tabela de offsets. Pedro explicou que o conversor XPM para SC5 ainda usa a ordem dos tiles, e Felipe registrou a issue #97 depois que uma mudança quebrou o MSX2.
Felipe propôs um port que rode direto de um disquete de boot, sem MS-DOS, e listou as interrupções a reimplementar; L. explicou que só a int 0x21 é do DOS e descreveu o setor de boot. Felipe pensou em adaptar o jogo como EPROM de boot para seu clone de IBM PC 5150 em CGA, e Erin explicou que o CGA é bitmap de 2 bpp com interleave de 8 KB. Felipe também lembrou que Patinho Feio e a VM do Another World não têm compilador C.
L. e Felipe discutiram opções de música para o port de PC (AdLib, PC speaker) e referências sobre tocar MOD no PC speaker. RicBit ofereceu seu player de MOD em Java para ser portado para C.
Pedro abriu a issue #102 sobre suporte a mouse; L. lembrou que no PC basta ativar o driver pela int 33h. Pablo defendeu que cada plataforma tenha o cursor adequado às suas capacidades, e Felipe disse achar interessante que os ports tenham visuais diferentes.
Felipe abriu o PR #111, um rascunho quebrado do port para Vectrex, depois de dificuldades com o compilador CMOC. L. indicou versões do gcc6809; Felipe compilou a versão do GitLab substituindo caracteres 0xA0 que quebravam a documentação texinfo, mas o link falhava por falta de libc.a.
L. começou um leitor de MOD e notou campos com quantidades muito diferentes de minas no port MS-DOS. Trocou random_number() por uma versão de 16 bits do algoritmo de Lemire e depois concluiu que o comportamento estava correto: o número de bombas é sorteado entre 10 e 30.
Pedro enviou o PR #114 com o estado de fim de jogo no MSX2; Felipe pediu para renomear check_endgame, que retorna um novo estado e não um booleano. A vitória era indicada apenas pela ausência de explosão e do cursor, por falta de tiles para mensagem. Pedro depois enviou o PR #116 para o caso de célula com bandeira inválida.
Felipe compartilhou The Ghidra Book: The Definitive Guide na Amazon Brasil; Pedro achou o preço de cerca de R$ 300 excessivo, e L. indicou que a No Starch Press publica cupons de desconto perto de feriados.
Felipe perguntou se um segundo jogo poderia aproveitar o codebase e rodar em todos os ports; L. sugeriu snake ou Pipe Dreams, e Felipe lembrou que o port do GunSmoke veio de um snake com o Pixotosco. Pedro defendeu concluir antes todas as funcionalidades do Mines, incluindo timer, música e efeitos sonoros, para evitar ports incompletos e excesso de macros, e Felipe concordou; L. planejou diálogos de início e fim de jogo.
Felipe compartilhou o site PCjs Machines.
L. mostrou diálogos no MS-DOS com a paleta escurecida. Pedro fez idle_update() controlar o fps com wait_tick() (PR #122) e explicou que no MSX o timer usa o hook HTIMI no retraço vertical, enquanto Felipe previu que o Vectrex precisará esperar o vsync e usar um campo menor; Pedro implementou depois timer e contador (PR #126).
L. conseguiu tocar áudio PWM de 8 bits a 16 kHz no PC speaker, e Felipe confirmou o ruído de teste no seu 386. O PR #128 inicialmente só funcionava fora do modo gráfico; L. corrigiu a rotina de interrupção ao perceber que um pushf e o carregamento de BX estavam em ordem errada, e passou a precisar de efeitos sonoros.
Felipe passou a usar o gcc6809 no port Vectrex e viu que faltava compilar a newlib-6809. Para chamar a rotina de números aleatórios da BIOS, L. explicou a sintaxe de assembly inline do GCC; a forma sugerida por ela gerou erro de constraint, e Felipe voltou à sua implementação original, verificando o resultado no debugger do MAME. Descobriu que o linker colocava variáveis em ROM, e não na RAM em C800-CBFF, e concluiu que precisa de um linker script.
Anne Isabelle começou um port para PlayStation com o PSn00bSDK e abriu o PR #127 como rascunho, trabalhando com João Carlos. O grupo discutiu fluxo de trabalho com draft PRs e branches de vida curta; em 26/06 o port já desenhava a grade. Felipe pediu que a dependência do CMake fosse a versão 3.18.4 do Debian, e Anne explicou que a biblioteca exige a 3.20, segundo a documentação, e que testaria a versão anterior.
Flávio Amieiro compartilhou fotos do Computerspielemuseum de Berlim, com muitos equipamentos funcionando e abertos ao público, e o grupo comentou FM Towns Marty e Fairchild Channel F. Nano Gennari mostrou vídeos da réplica de um computador mecânico, o Z1, vista no museu de tecnologia de Berlim.
Felipe compartilhou um repositório com o modelo 3D do MSX HitBit HB-101.
Pedro passou a mostrar bandeiras colocadas incorretamente no fim do jogo (PR #130) e a manter as corretas no tabuleiro em vez de trocá-las por minas (PR #133). Felipe encontrou um bug: com uma bandeira errada, o open block pode detonar uma mina vizinha, enquanto o código assumia que a explosão ocorre sempre na posição do cursor. Pedro corrigiu a detonação múltipla no PR #134.
L. sugeriu que o Patinho Feio aparecesse na série sobre computadores do canal Manual do Mundo, e Felipe disse que tentaria entrar em contato.
Felipe pausou o port Vectrex para desenhar PCBs das réplicas do painel do Patinho Feio: a FDTE encomendou 4 painéis para a celebração dos 50 anos, e o protótipo usa um Arduino e dois MAX7219 para os LEDs. L. mostrou o PiDP-11 como referência; discutiram que o Arduino não emula o Patinho Feio na velocidade correta, a troca do cristal de 16 MHz do ATmega328 por um de 20 MHz ou mais e a diferença de níveis lógicos entre RPi Zero (3,3 V) e MAX7219 (5 V).
Felipe informou que o tkchia preparou pacotes do ia16-gcc para o Ubuntu Kinetic e sugeriu instalar pacotes via apt nas VMs do GitHub Actions em vez de usar Docker; Pedro lembrou que os pacotes que gerou não incluíam todos os headers, como conio.h, e L. observou que esse header não é mais usado.
Robson França chegou ao grupo por um link postado no grupo de TRS Color; a pedido de Felipe, o link do grupo Clube Color Brasil foi compartilhado (postado por Felipe). Pedro perguntou se já existe campo minado para TRS-Color, e Felipe observou que portar o Mines para o CP400 usaria um toolchain parecido com o do Vectrex, pois ambos usam o MC6809.
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 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.
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.
Anne Isabelle montou um cabo serial USB-TTL (CP2102) para carregar programas no PlayStation real, usando o UniROM no console e o nops no PC. A primeira falha de imagem vinha do próprio código (um hello world rodou), e uma inversão de cores foi causada pelo RetroTINK. Depois disso o port do Mines rodou no console, com o mesmo bug de background visto no emulador. Felipe fez o merge do PR #127, com a base do port, e Anne abriu em seguida os PRs #135 e #139. Felipe também montou o ambiente com toolchain e emulador e reproduziu o flickering ainda pendente.
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.
Felipe conta que sua demo para Odyssey 2, apresentada na Rewired 2010 em emulador, depois se mostrou incapaz de rodar no hardware real. Shideravan descreve hacks de SNES que dependiam de imprecisões de emuladores antigos e que o bsnes precisa tratar. RicBit relata que um jogo seu para Master System só rodou no console depois que ele descobriu e reproduziu a verificação de checksum da ROM feita pelo hardware.
Pablo Vasques Bravo-Villalba compartilha a notícia de que todos os manuais de SNES em inglês foram disponibilizados online. Shideravan pretende conferir se falta algum no Datassette. Felipe lembra que tem a coleção completa dos livros do Pense Bem, parte ainda não escaneada.
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.
Felipe pergunta como gerar executáveis Win16 com gcc-ia16 para portar o Mines para Windows 3.11. L. explica os formatos MZ, NE e PE, e Felipe propõe pôr as versões de DOS e de Windows num único binário. A licença não livre do OpenWatcom e a possibilidade de mudá-la são debatidas. Ismael Luceno sugere Win32s e relembra a história do Watcom e do DJGPP em jogos como Quake e Doom.
A partir de uma postagem compartilhada por Felipe sobre empresas que processam o Internet Archive, e depois do aviso de Thaís Blue Bunnies de que o Archive faria uma coletiva de imprensa, o grupo discute o programa de empréstimo digital, copyright e patentes. RicBit observa que patentes expiram em 20 anos.
A reportagem da Folha sobre os 50 anos do Patinho Feio é compartilhada. Felipe, que havia cancelado uma live sobre o tema, remarca para 24 de julho a live sobre a história, a operação e o projeto de hardware e software da máquina, e comenta a coincidência com a visita do avião Beluga a Campinas na mesma data.
Felipe propõe integrar o patch de som de L. para o port MS-DOS usando arquivos WAV livres provisórios. L. explica as limitações do modelo de memória tiny, a opção de ler o áudio de arquivo com far pointers e os problemas de uma ISR em C (inclusive com LTO), e sugere escrever a ISR em assembly com ring buffer.
L. compartilha a mesa em miniatura de Pinball Fantasies criada por Spritetm. Felipe relata seu próprio hack antigo para exibir a mesa inteira e seu projeto inacabado de réplica em tamanho real da mesa Party Land rodando DOSBox modificado. Felipe aponta que o autor não conseguiu remontar o código-fonte original publicado no repositório, e L. nota que faltam partes como o mod player.
Pedro de Medeiros adiciona suporte a mouse ao port MSX2 do Mines, com limpeza e autodetecção em PRs seguintes, e descobre que o clique do meio no openMSX cola a área de transferência na matriz de teclado. Ele documenta a função set_minefield_cell para que L. implemente mouse no port MS-DOS via int 33h.
Felipe cita um trecho de um texto da SBC Horizontes, segundo o qual o 7º SECOMU (1977) levou ao projeto G-10, depois G-11 e COBRA 530, e o Patinho Feio foi antecedido pelo Lourinha do IME (1958) e pelo Zezinho do ITA (1961).
Pedro de Medeiros integra o uso do comando HMMM do VDP e um novo tileset 16x16 feito por mrparn. O tileset antigo havia sido removido e, a pedido de Felipe, voltou com um mecanismo de troca de tilesets (PR #147).
Felipe começa a escanear e estudar os fotolitos originais do sintetizador do professor Guido Stolfi. Na foto aparece também uma pilha de placas de fenolite dupla-face.
Augusto Almeida apresenta o ROMulator, dispositivo que substitui RAM ou ROM em computadores 6502, e depois anuncia a versão para Z80 em acesso antecipado.
Pedro de Medeiros conclui o suporte a joystick, corrige a convenção de chamada __sdcccall(0) e adiciona as funções platform_begin/end_draw e melhorias de depuração. Discute-se testar em MSX real ou em FPGA (SM-X, Zemmix, Multicore 2+), e Felipe se oferece para testar no hardware.
Augusto Almeida anuncia a decompilação completa de Sonic Mania, e dois dias depois mostra os primeiros ports. O grupo comenta a coletânea Sonic Origins, lançada com bugs e DLCs, e o risco de as empresas perseguirem projetos de decompilação.
Felipe encontra à venda um cartucho Telebradesco da Tectoy. Erin Pinheiro diz que ele usa, até onde sabe, o mesmo hardware do Mega Net brasileiro e só muda a ROM.
Felipe apresenta Dario Junior, que faz um TCC em Sistemas de Informação sobre o Patinho Feio, e compartilha o vídeo não listado da conversa inicial entre os dois, com autorização de Dario.
Felipe testou pela primeira vez a fabricação de PCB com dry-film fotossensível para a interface de recepção de dados do sintetizador de Guido Stolfi, que era usado com computadores da época, inclusive o Patinho Feio. Na primeira tentativa usou uma transparência impressa a partir do scan do fotolito original de 1974, e na segunda o próprio fotolito original. Ele relata o que deu certo e o que deu errado e explica que o objetivo é prototipar PCBs em um dia. Flávio Amieiro sugere importar os scans no KiCad, e FTMaciel recomenda escurecer o toner com nanquim.
Augusto Almeida compartilha o adaptador EXPS/2. Felipe relata que criou em VHDL, no LSI-USP, cerca de 15 anos antes, um conversor de mouse PS/2 para mouse MSX.
Felipe escaneou os fotolitos em 1200 dpi, vetorizou-os no Inkscape e importou as duas camadas no KiCad como camadas de apoio. Ele cruza o layout com o esquemático escrito a lápis no caderno do professor para identificar cada chip e redocumentar a placa. A meta é emular o circuito no MAME e no Raspberry Pi Pico da réplica do painel do Patinho Feio. Flávio Amieiro se oferece para ajudar, e Felipe sugere que ele trabalhe em outra placa do sintetizador.
Augusto Almeida encaminha o anúncio da pré-venda do livro "Insira Ficha: O Fliperama no Brasil ontem e hoje", à venda na loja da Bitnamic.
A partir de um artigo sobre a porta de joystick do Atari 2600, Pablo Vasques Bravo-Villalba e Robson França lembram os riscos de ligar alguns controles de Atari no MSX. RicBit explica que um pino de I/O do MSX corresponde ao GND no Atari, o que gera curto se configurado como saída em nível alto. A conversa segue para a padronização do USB.
Sebastiao Barretto, Felipe e Fernando, do LASSU, testaram a Teletype Model 33 da Poli-USP para usá-la como terminal do emulador do Patinho Feio nos 50 anos. Encontraram uma placa conversora de loop de corrente para RS-232, provavelmente feita na Poli, e notaram que a máquina somava 16 ao código dos caracteres. No segundo teste, com um Raspberry Pi Pico a 110 baud, o teclado funcionou, mas a impressão e a perfuradora mostravam bits sempre setados. Pelo manual, segundo Sebastiao, o problema parece estar nas codebars, talvez por mola solta ou falta de lubrificação.
Felipe compartilha uma postagem do blog Cantinho TK90X sobre um programa para desenhar grade na tela usando USR.
Felipe identifica o chip de modem do Meganet da Tectoy como um Rockwell RC224ATF e, para não dessoldar os chips, sugere ler as ROMs com uma placa própria. Leonardo Roman compartilha o dump da ROM, mas observa que o modem provavelmente não está emulado. Felipe conta que comprou um modem USB discado para tentar simular, no laptop, o servidor original da Tectoy com o cartucho num Mega Drive real.
Felipe divulga o evento da Poli-USP e da FDTE pelos 50 anos do Patinho Feio, em que fará uma palestra, e contesta o título de "primeiro computador brasileiro". Hugo (Agaelebê) cita o Zezinho do ITA, e Felipe menciona o Lourinha do IME, sobre o qual diz não ter informação além do nome.
Felipe mostra fotos de itens encomendados pela FDTE para o aniversário de 50 anos do projeto (que kretcheu descreve como "Patinho feio em série") e as PCBs do painel-réplica feitas por André Biagioni. O painel passou a usar um Raspberry Pi Pico em vez de Arduino, para rodar o código original na velocidade correta mesmo com a camada de emulação.
Ao escanear um pacote de fotolitos que tinha visto com André Biagioni, Felipe descobre que uma PCB com três circuitos idênticos foi feita colando três cópias positivas de um mesmo fotolito numa matriz, com trilhas adicionais em fita, antes de revelar o negativo final. Ele mostra o scan e a vetorização no Inkscape.
O grupo compartilha a reportagem do Jornal Hoje, a matéria do g1 e o vídeo do evento da FDTE. Segundo Sebastiao Barretto, a demonstração do emulador começa em 1h16 e a conversa com os projetistas, em 1h40. Felipe também compartilha uma postagem de Guido Stolfi.
Felipe "Juca" Sanches repassou uma mensagem de Guido Stolfi: após a troca de trimpots, chaves, operacionais, transistores e um diodo, todos os módulos do sintetizador voltaram a funcionar. Guido contou que fez um conversor de protocolo para serial a 115200 bps, que envia caracteres para start, stop e cada pulso de sincronismo e recebe do computador comandos com endereço e valor. Felipe pediu a descrição de quais módulos são controlados por quais strobes, para adaptar a emulação e o código do painel. Guido enviou a lista de comandos do sintetizador (nota, timbre, D/A, portamento e envoltórias), retirada da página 57 do manual.
L. sugeriu simular polifonia no sintetizador monofônico tocando a nota mais próxima da média de duas notas. RicBit e Pablo Vasques Bravo-Villalba responderam que isso não funciona e resulta em outra nota. RicBit propôs alternar as notas. Pedro de Medeiros lembrou a técnica de arpejos rápidos, popularizada pelo C64 com o SID, e Pablo acrescentou que ela também é comum em plataformas com o AY. Pablo notou que a alternância introduz ruído. RicBit mostrou num espectro que alternar as notas mantém o acorde, mas espalha a energia em ruído ao redor dos picos.
Felipe "Juca" Sanches encaminhou ao grupo um vídeo sobre um recurso do Z80 descoberto 40 anos depois. Dias depois, compartilhou o vídeo "Restoring the Machine that Destroyed the Death Star", da VCFMW 2019, e o indicou a aylons.
Anne Isabelle comentou que o projeto do Minesweeper para PlayStation estava parado e que só o grid havia tomado cerca de duas semanas. Felipe "Juca" Sanches propôs retomá-lo e ajudar, e Anne sugeriu marcar um domingo. A conversa passou depois para o preço de consoles antigos e monitores CRT em Londres, onde Felipe citou um CRT VGA a 40 libras. L. disse que os PVM da Sony também são caros onde mora. Erin Pinheiro 🐿 contou que terá de vender seu 14L2U quando sair do Brasil: um dos últimos da linha de tubo, vindo de uso médico, com poucas horas de uso.
Felipe "Juca" Sanches disse que não faria root em seu único console, um Switch. Shideravan contou que fez o desbloqueio do seu, principalmente para rodar emuladores de PSP, Saturn e outros consoles antigos, e considerou o Switch uma das melhores plataformas para emulação. Citou também traduções, cheats, overclock e ports de jogos de PC, e o aplicativo Checkpoint, que descriptografa saves para passá-los entre o console e o PC. Anne Isabelle disse preferir comprar os jogos.
L. compartilhou o vídeo The Commodordion. Felipe "Juca" Sanches elogiou Linus Akesson e acrescentou a demo Lunatico, dele, e um vídeo de um C64 transformado em theremin.
Shelton Ribeiro compartilhou a ROM de "O retorno de Fênix", jogo novo de Cavaleiros do Zodíaco para Game Boy Color feito por um programador do México e traduzido por um fã brasileiro. Depois indicou a página do projeto, de ZeichiGames. Shideravan rodou o jogo no ares. Constatou que ele exibe uma tela avisando que não roda no Game Boy clássico e no Pocket, e que também não funcionou no modo Super Game Boy 2 do ares e do mGBA, embora tenha uma borda própria para Super Game Boy. Felipe "Juca" Sanches perguntou se seria razoável pedir aos desenvolvedores que publicassem o jogo sob licença de software livre. Ele defendeu que projetos novos de retrocomputação sejam publicados assim, e Shelton disse que tentaria contato com os autores. Também foram apontados problemas de kerning, pontuação e acentuação na tela de aviso traduzida.
Temas: Emulação do Technics KN5000 (16), Engenharia reversa do Another World (11), Patinho Feio e computadores nacionais (12), Pense Bem e a decapsulação do Zilog Z8 (7), MSX, processadores e técnicas de vídeo (6), Música, chips de som e o TRS Color (4), Preservação, acervos e código-fonte (9), Consoles, homebrew e emulação de jogos (5), Emulação de computadores e software antigo (8), Outros projetos e curiosidades (12)
Shelton Ribeiro mostrou um console portátil chinês de menos de 100 reais que roda a demo do Tomb Raider. Felipe "Juca" Sanches explicou que o aparelho usa na horizontal um LCD feito para uso vertical, por isso as cores mudam com o ângulo de visão. Erin Pinheiro observou que isso provavelmente foi uma escolha intencional para reduzir o custo.
Felipe "Juca" Sanches compartilhou o artigo "O legado do Patinho Feio", publicado no Nexo Jornal.
FTMaciel perguntou se a emulação de consoles no MAME é uma descrição do hardware e como ficam os cartuchos "x em 1". Felipe "Juca" Sanches explicou que, quando o cartucho tem hardware de chaveamento de banco, esse hardware precisa ser emulado, e que o cartucho do Telebradesco, que tem um modem, ainda não é emulado.
Felipe "Juca" Sanches compartilhou uma notícia sobre um driver de vídeo DRM escrito para o kernel Linux, voltado a um computador Atari de 1992.
Felipe "Juca" Sanches perguntou se alguém coleciona scans de embalagens de produtos e sugeriu digitalizar embalagens de bolachas, cigarros, cereais, pilhas, fitas VHS, medicamentos e outros itens. Shideravan indicou a coleção de scans de caixas de jogos de Neo Geo do Datassette, e Sebastiao Barretto falou das embalagens de MiniDisc que coleciona.
Felipe "Juca" Sanches postou a foto de uma embalagem de bolacha Passatempo, e Shideravan comentou a redução do peso do produto ao longo dos anos. Shideravan e Anne Isabelle discutiram então o valor das embalagens como registro da história econômica e política e como o autoatendimento e as vendas online vêm simplificando o design dos rótulos. Felipe descreveu os caixas de autoatendimento de Londres, que conferem o peso de cada item. Shideravan propôs organizar um repositório de scans de embalagens por país, período e categoria.
Felipe "Juca" Sanches compartilhou um projeto de sylefeb que pôs em prática uma ideia que ele havia proposto e esboçado, mas não implementado. Ele disse ainda querer fazer uma versão JAMMA usando apenas pastilhas TTL.
Pedro de Medeiros compartilhou o Costa, uma interface gráfica para DOS com código sob licença MIT. Felipe "Juca" Sanches observou que ele foi feito em QBASIC e lembrou que, por volta dos 12 anos, programou em QBASIC uma janela no estilo do Windows 3.11 com suporte a mouse. Pedro contou que fez algo parecido em Visual Basic 3, e Pablo Vasques Bravo-Villalba disse que programava em QuickBASIC, mas nunca fez nada que usasse mouse.
Felipe "Juca" Sanches publicou o ExecTrace no PyPI, passou a usá-lo no AnotherWorld_VMTools e documentou rotinas e recursos gráficos da fase inicial do Another World. Ele descreveu padrões do bytecode: o uso de variáveis da VM para não repetir animações, o cache do cenário de fundo e o double-buffering sobre polígonos. Ao comparar versões, viu que os lançamentos para Symbian e Mega Drive europeu desativam a proteção contra cópia com um RET. Também reativou por patch um NPC que existe na versão de Amiga mas está desativado na de MS-DOS.
Giga perguntou sobre uma notícia de que a USP estaria recolhendo hardware antigo para estudo. Felipe "Juca" Sanches indicou o laboratório LASSU da USP como contato e compartilhou tópicos do fórum fiozera sobre peças desse acervo.
FTMaciel contou que está reparando um SID 1035 que pertencia à UnB e disse que vai fazer o dump da EPROM do aparelho. Leonardo Roman encontrou uma publicação sobre o modelo.
Pablo Vasques Bravo-Villalba perguntou quais cores correspondem a cada atributo no TK2000, que gera cores por artefato de vídeo composto como o Apple II, mas no padrão PAL-M. Felipe "Juca" Sanches sugeriu conferir as cores na emulação do TK2000 no MAME. RicBit contou que mediu com osciloscópio um Expert e concluiu que não há uma cor exata, pois ela depende do circuito, do cabo e da TV. Pablo compartilhou esquemas do TK2000 e as frequências de cristal de NTSC e PAL-M, e RicBit se ofereceu para calcular os níveis do sinal.
L. anunciou que o Computer History Museum liberou o código-fonte do Apple Lisa. Felipe "Juca" Sanches observou que a licença usada pela Apple não é de software livre, mas parece razoável para fins de preservação. Depois foram compartilhadas uma matéria do Tecnoblog e outra do The Verge, e Erin Pinheiro indicou o folklore.org como fonte de relatos em primeira mão.
Felipe "Juca" Sanches compartilhou a implementação da VM do Another World em FPGA feita por sylefeb, que ele havia sugerido cerca de dois anos antes e cujo código ainda não foi publicado. Ele também indicou duas issues do AnotherWorld_VMTools para quem quiser contribuir.
Toy compartilhou um episódio do Hanselminutes com Aaron Giles, ex-programador do MAME. Felipe "Juca" Sanches comentou que se identificou com várias experiências relatadas e que o projeto atual de Aaron, de jogos em SCUMM, emula um IBM PC e roda a VM original por cima.
Felipe "Juca" Sanches começou um disassembler da CPU Toshiba TLCS-900/H, usada no teclado Technics KN5000 e no Neo Geo Pocket, com base no ExecTrace, depois de uma tentativa anterior com o GNU binutils. Ele propôs rotinas para detectar cartuchos de Neo Geo Pocket e vetores de boot. Na primeira etapa, desmontou 184 instruções em sequência a partir do ponto de entrada do firmware. O próximo passo é marcar as instruções de desvio. Quando L. perguntou sobre suporte a MIDI no MAME para o teclado emulado, ele respondeu que já existe.
Anne Isabelle mostrou renderizações feitas no Bryce 3 e um site montado no iWeb em seu iBook. O grupo então listou sites antigos que continuam no ar, como o site do Space Jam de 1996, o pudim.com.br, o itcorp.com e a FogCam.
Os participantes falaram de laptops antigos ainda em uso, de CDs e DVDs perdidos por mofo ou descascamento e de HDs que falharam. Ismael Luceno disse que CDs de boa qualidade duram décadas, e RicBit, que o armazenamento magnético é mais durável do que se pensa. L. lamentou não ter guardado os CDs da Revista do CD-ROM para enviar as ISOs ao archive.org, pois muito shareware nacional se perdeu, e mostrou um easter egg do Arquive 1.0 beta 2 que revela Chester como um dos autores.
Felipe "Juca" Sanches explicou como documenta as jump tables do firmware do KN5000 (por exemplo, a de 4 ponteiros em 0xFCB6F9, declarada com read_jump_table) para que o disassembler encontre mais rotinas. Ele também encontrou tabelas de 192 ponteiros e procura falhas de verificação de índice que permitam executar código para depurar seu descompressor. Ao publicar o código, RicBit identificou um trecho acidentalmente quadrático e sugeriu usar set() e match case, e Leonardo Roman compartilhou o manual do TLCS-900 de 1994 para resolver instruções desconhecidas. Felipe ainda citou a mesa Sony PVE-500, que usa CPUs TLCS-Z80 e tem driver no MAME.
Felipe "Juca" Sanches pediu ajuda para identificar um brinquedo eletrônico sem nome de fabricante, parecido com o Pense Bem. Ismael Luceno identificou o Master Challenge, da Peter Pan Playthings, e o See & Learn Computer, da Kay-Bee Toys.
Sebastiao Barretto leu três caixas de fita de papel com uma nova leitora: um solenoide pressiona o eixo motor, nove LEDs são acionados por um CD4017 e um fototransistor fica ligado à entrada analógica de um Arduino. Ele ajustou os limiares de leitura até funcionar com todas as cores de fita. As fitas incluem o compilador Patol do Patinho Feio, programas em BASIC do HP 2000 e rotinas em assembler HP. Felipe "Juca" Sanches pediu que todas as versões sejam preservadas e propôs subir os dumps em repositórios parecidos com o ArqueologiaDigital/PatinhoFeio. Sebastiao sugeriu repositórios separados para o Patinho Feio, o HP time-sharing, o HP DOS e o IBM 1130, este com material em cartão, e vai enviar os arquivos.
Felipe "Juca" Sanches comprou no eBay um Neo Geo Pocket Color, que usa a mesma CPU do KN5000, e discutiu o que fazer com ele, como portar a VM do Another World, que esbarra na resolução da tela. Erin Pinheiro contou como trouxe um teclado musical do Reino Unido como bagagem despachada.
Felipe descobriu que o binário do firmware do teclado Technics KN5000 contém símbolos de depuração e escreveu uma função para ler as strings e os ponteiros, embora os nomes ainda não se encaixassem. Ele separou o código de estudo do KN5000 do disassembler genérico da CPU TLCS900H e citou como próximo passo detectar e interpretar o cabeçalho de cartuchos de Neo Geo Pocket Color.
Felipe fez um mockup do Another World renderizado no MAME em 160x152, a resolução do Neo Geo Pocket Color, e avaliou que o jogo caberia num cartucho de 2 MB se usasse a compressão das versões de Amiga e MS-DOS. Depois concluiu que o chip de vídeo do console não tem framebuffer, só tiles, o que inviabilizaria a VM, que exige quatro buffers de vídeo. RicBit lembrou que fez uma engine 3D baseada em tiles no MSX, Pedro citou o Elite do MSX, vetorial e baseado em tiles, e L. mencionou um ray casting com tiles para MSX. Pablo calculou quantos tiles seriam necessários para a abordagem.
O grupo comentou a interface do MAME, que é de linha de comando com um debugger em Qt. Pedro contou que está corrigindo bugs de mais de 12 anos no debugger do openMSX. RicBit lembrou de falhas nas telas de debug do VDP e mostrou que o script vgmrecorder do openMSX derivou do seu grabfm.tcl, e explicou que o projeto rastreou a proveniência do código e pediu a licença antes de incluí-lo.
Pablo comentou um projeto de placa de som com o SAA1099 para MSX, o mesmo chip do SAM Coupé, e observou que será difícil encontrar esses chips em bom estado no futuro. Augusto indicou a TurboSound FM para ZX Spectrum.
Felipe retomou o disassembly do bytecode do Another World. Ao revisar a issue em que havia documentado o armazenamento das strings, notou a coincidência com a data de abertura, e comentou que o projeto já dura 10 anos e que ele faz o disassembly em paralelo de 5 binários quase idênticos. Ele também criou uma pseudo-instrução bank_switch para deixar mais legível a troca de fase da VM.
Felipe publicou sua proposta de palestra sobre a VM do Another World para a TOSCONF, organizada pelo LHC, o hackerspace de Campinas. A conversa passou para a viabilidade do jogo no MSX: Felipe se preocupa com o processamento e com os quatro buffers de vídeo, e Pablo e RicBit sugeriram o V9990. Felipe também mapeou os pré-requisitos de execução de cada banco de código do bytecode da versão MS-DOS.
A partir dos artigos de Fabien Sanglard, Felipe discordou da explicação, dada no artigo sobre a versão de Atari ST, para a remoção do besouro. Para ele, os polígonos e o código continuam dormentes na versão MS-DOS, e a remoção foi uma decisão artística, não uma questão de espaço em disco. Ele remontou o bytecode e conseguiu reincluir o besouro, que apareceu em posição errada e travou o jogo. Também notou arquivos duplicados entre os dois disquetes da versão de Atari ST.
Felipe testou uma implementação incompleta da VM do Another World escrita em Rust e enviou um pull request corrigindo um overflow. Também disse querer escrever no seu fork do MAME uma segunda implementação da VM como unidade de controle microprogramável, para depois fabricar a PCB no projeto CPU do Zero do Garoa.
O grupo comparou o som do Mega Drive e do SNES. Pablo detalhou as diferenças entre o chip FM do arcade e o do Mega Drive usando Galaxy Force II como exemplo. Também se discutiu a participação de Michael Jackson e Brad Buxer na trilha de Sonic 3 e as hipóteses para a retirada dos créditos. Foram indicados projetos que reconstroem trilhas de SNES com os samples originais.
Erin adicionou ao emulador de Game Boy GameYob suporte à câmera do DSi para o mapper da Pocket Camera e enviou a contribuição ao projeto original por pull request.
Felipe começou a reorganizar seu branch local do MAME com o esboço de driver do Technics KN5000 para enviar um pull request, que ainda não dá sinal de vida. O primeiro commit adiciona suporte à variante TMP94C241 do TLCS900. Ele também abriu um documento público para registrar o código de boot e a inicialização do hardware.
Felipe compartilhou um vídeo de alguém construindo um pinball Party Land e lembrou do seu próprio remake da máquina, iniciado há quase 20 anos e não concluído, com vídeos do andamento. Pablo citou as trilhas de Pinball Dreams e Pinball Fantasies.
Felipe mostrou um HD de 1 GB com mais de 20 anos e sem dados, comprado por ser um item especial. Contou que o documento sobre a emulação do KN5000 já tinha 22 páginas e que escrever o documento ajuda o próprio desenvolvimento do emulador, e pediu leitura e comentários.
Robson extraiu a forma de onda de órgão (256 amostras) e descreveu o algoritmo do player: soma de 4 canais lidos de uma tabela de samples, com ponteiros de 24 bits em formato 16.8 e incrementos de 16 bits por nota. A frequência base é 8085 Hz, há 65 notas e os samples são divididos por 4. RicBit identificou a técnica como DDA. Robson publicou um vídeo da Abertura de Guilherme Tell tocada no TRS Color.
Felipe pediu ao dono finlandês de um site de cerca de 20 anos os discos de atualização do firmware do KN5000 com links quebrados e recebeu as versões 7 e 8; a versão 6 ainda faltava. Ele listou as datas das versões 7 a 10 e explicou que versões antigas permitem comparar binários e procurar bugs exploráveis, e que ainda busca uma forma de fazer o dump a partir de um firmware não modificado. L. e Felipe notaram que o Wayback Machine guardou páginas 404 no lugar de alguns desses arquivos. Felipe publicou um pacote com os discos no Internet Archive.
A partir de um vídeo sobre displays VFD, Felipe mostrou seu projeto de animação de displays LCD em SVG e JavaScript, que inclui um rádio de carro e o Pense Bem. Ele descreveu a ideia de um mosaico de displays controlados como uma tela única e de um "MAME dos VFDs" que catalogue e documente esses displays.
Elson repassou um torrent com 4 GB de documentos da Itautec, com material dos computadores I-7000, IS30 Plus e IS286. Felipe começou o download para verificar se o esquemático do I-7000 baseado em Z80 está incluído, e lembrou que a Itautec deu o mesmo nome a um clone de PC-XT.
Ao extrair o disquete de instalação do disco rígido opcional do KN5000, Felipe viu que a atualização da flash da controladora não é comprimida. Isso a torna candidata a vetor de injeção de código para fazer o dump da ROM principal sem alterá-la. Ele confirmou que um chip dessoldado por Ronaldo foi lido corretamente, verificando os bytes checados pelo autoteste. O dono finlandês do site lhe enviou a versão 6 do firmware e o software HD-TechManager5000, de 1998.
Felipe corrigiu a execução das rotinas de interrupção no emulador do TLCS900 usado pelo KN5000 no MAME. Com isso o firmware passou de um laço de espera que, segundo ele, aguarda uma variável atualizada por uma interrupção de timer, mas a tela VGA continua preta. Como próximo passo, ele propôs registrar a comunicação serial com o painel de botões e implementar emulação de alto nível (HLE) dos microcontroladores do painel, cujo código não foi extraído. Também notou que a Technics fabricou pianos digitais com a mesma arquitetura.
Felipe fez uma transmissão ao vivo no YouTube sobre a emulação do KN5000 no MAME. Depois mostrou a PCB do painel de controle danificada e o microcontrolador do painel. Disse que já comprou uma placa nova e que pretende usar a danificada com um Arduino para decodificar o protocolo. Pelo que entendeu, o chip contém uma mask ROM, e o dump exigiria decapping.
Shelton compartilhou uma versão de Pokémon Red legendada em português e otimizada para rodar no Nintendo 64 via Everdrive ou emulador. O grupo comentou a atividade da cena de N64, impulsionada pelo Everdrive e pelos mods de Kaze Emanuar. Shideravan perguntou sobre mudanças na renderização 3D do MAME, e Felipe disse não saber.
A partir de um computador 486 montado em protoboard, Felipe descreveu a ideia de montar um subconjunto de PC só com os componentes necessários para rodar um programa específico, como Pinball Fantasies, e a chamou de "refatoração de hardware". Shideravan comentou o uso de displays DMD em simuladores de pinball.
Felipe substituiu a placa danificada do painel por uma nova e verificou as versões de firmware: o teclado veio de fábrica com a versão 4 ("Main Program 1284"), ainda sem dump. A placa de disco rígido instalada tem firmware 2.06i, também sem dump, o que impede regravar qualquer uma das ROMs antes de extraí-las. Ele considerou projetar uma placa de extensão só com uma ROM ou comprar uma segunda placa-mãe, e sugeriu criar um substituto do binxelview para GNU/Linux.
Felipe compartilhou o vídeo da transmissão ao vivo de sua palestra "Engenharia Reversa do jogo Another World de Eric Chahi" na TOSCONF 2023.
Felipe indicou mensagens antigas do grupo e o documento do KN5000, que passou de 35 para 45 páginas numa noite. Ele planejou traduzir para o inglês a técnica de dump pela rotina de backup das configurações do usuário e cogitou publicar um livro sobre o processo, se o emulador funcionar.
Com o painel consertado, Felipe começou os experimentos com disquetes, mas o drive do KN5000 riscou um disquete novo. Ao estudar o circuito no manual de serviço, encontrou nomes de pinos errados no controlador de disco. Erin atribuiu os erros a artefatos de escaneamento, como os de copiadoras Xerox que trocam caracteres.
O novo drive de disquete funcionou no KN5000, mas o drive USB do laptop danificou o disco. Felipe encontrou um tutorial de modificação do Gotek para o KN5000 com um erro de alimentação, e Leonardo sugeriu o firmware FlashFloppy. Felipe passou a ler o código-fonte do FlashFloppy para entender drives de disquete a fundo, e foram citados o Glasgow e o Greaseweazle.
Alexandre Villares compartilhou um artigo sobre compilar software de 15 anos atrás com Nix, e Felipe compartilhou a notícia de um grande lote de máquinas de arcade encontrado num celeiro no Arkansas.
Felipe compartilhou um pull request do MAME com o dump e um driver esqueleto de um controlador de semáforos da Etra.
Shideravan mostrou as notas máximas de Donkey Kong 64 nas revistas da época e perguntou por que o jogo hoje é malvisto. Shelton atribuiu isso às expectativas criadas pela trilogia de SNES e à dificuldade de coletar os itens. O grupo também comentou a primeira impressão de Zelda.
Shideravan propôs trabalhar num driver do Zeebo no MAME, ao menos para documentar o sistema, e Felipe observou que há poucos brasileiros no MAMEdev. Foram discutidas a CPU ARM11 personalizada, a GPU Qualcomm (antes Imageon da ATI, depois Adreno) e as limitações do MAME com sistemas multi-thread.
A partir de um artigo sobre a interface do Smalltalk-80 da Xerox, Felipe "Juca" Sanches colocou o sistema para rodar em menos de um minuto. Ele lembrou ter visto o professor Etienne Delacroix usar um sistema semelhante na USP por volta de 2006.
A partir de um vídeo sobre o Galaga, Felipe "Juca" Sanches propôs investigar o bug em que os inimigos param de atirar: se funciona, qual a causa exata e quanto tempo é preciso esperar. Shideravan apontou a desmontagem completa do jogo no GitHub e a análise de Christopher Cantrell, segundo a qual um buffer de tiros dos inimigos fica entupido. Os dois especularam sobre como o truque teria sido descoberto e notaram que o tempo de espera relatado varia (de 5 a 20 minutos, segundo o primeiro registro do truque); Felipe supôs o estouro de algum contador, sem confirmação.
Felipe "Juca" Sanches mostrou o modelo em LEGO, ainda em andamento, do bar "Chez Luc" do jogo LBA2: Twinsen's Odyssey e publicou o repositório do projeto.
Robson França propôs portar o projeto coletivo de Minesweeper para o TRS Color. Pedro de Medeiros 👾 disse que a API compartilhada é genérica o bastante e se ofereceu para completá-la se faltar algo. Felipe "Juca" Sanches pediu um pull request, mesmo incompleto, para que o grupo acompanhe o trabalho.
Felipe "Juca" Sanches compartilhou a monografia de Silvio Luiz Grecco sobre emulação, recém-apresentada na Fatec Taquaritinga.
Pedro de Medeiros 👾 trouxe um projeto do MSX Resource Center para criar um core do SCC a partir de fotos do die. Pablo Vasques Bravo-Villalba disse que as emulações do SCC soam diferentes do hardware real. Para RicBit, o PSG e o SCC deveriam ser exatos: as diferenças viriam do caminho analógico (R2R do cartucho, entrada sound in, ruído induzido e filtros da placa), que os emuladores ignoram, e cliques indicariam falta de filtro. L. sugeriu decapsular o S1990 e citou o mt32-pi.
Depois de mensagens sobre supercondutores, Felipe "Juca" Sanches lembrou que o foco do grupo é o passado ou a emulação atual do passado. Ele enviou a Shideravan, por chat privado, uma cópia das mensagens fora do tema.
Felipe "Juca" Sanches mostrou a grafia errada "MASHINE GUN" na versão de NES do Commando. Pedro de Medeiros 👾 citou um vídeo que compara as versões do jogo em vários sistemas.
L. compartilhou um artigo sobre um easter egg na versão para Mac do Another World. Felipe "Juca" Sanches notou que a assinatura da mensagem usa o domínio gnu.ai.mit.edu.
Giga compartilhou fotos de micros e terminais antigos à venda, a partir de um grupo do Facebook que ele criou em 2013; entre eles aparecem Scopus, Cobra 400, Exato, Maxxi, Poly 201, TRS-80, CP200, um terminal IBM e um Itautec I-7000. Felipe "Juca" Sanches perguntou o preço de um Scopus para possivelmente comprá-lo. Giga relatou que outro membro do grupo do Facebook descartou dezenas de terminais Cobra por falta de espaço.
Giga mostrou sua cópia do livro do Patinho Feio. RicBit contou que, como aluno, resolveu um exercício do livro com dois chips em vez de três. Felipe "Juca" Sanches indicou o scan da 2ª edição, publicado com autorização do autor no repositório PatinhoFeio. Giga descreveu seu próprio projeto de computador com 74181, registradores 74LS174 e um Arduino Mega como unidade de controle.
Felipe "Juca" Sanches publicou fotos de livros de atividades do Pense Bem. No Brasil a série foi publicada só até o número 13, mas nos EUA saíram também os números 14 a 19. Os livros fazem parte da coleção dele e foram retirados na casa de um amigo em San Francisco.
Felipe "Juca" Sanches contou que, no open mic de música eletrônica do hackerspace Noisebridge em San Francisco, apresentou uma pequena demonstração do Synth do Guido Stolfi e falou sobre a história do Patinho Feio. Ele compartilhou o vídeo do evento no YouTube.
Felipe "Juca" Sanches e Nano Gennari compartilharam dois jogos no estilo Minecraft para a TI-84 CE, um deles com iluminação por dithering. L. disse que estuda essas técnicas para portar o Dank Tomb para o MSX2.
Felipe "Juca" Sanches encontrou um site de livro de visitas com 28 páginas de mensagens de cerca de 284 ex-funcionários da Scopus, publicadas entre 2003 e 2023. FTMaciel sugeriu contatá-los em busca de material técnico, e Felipe disse que talvez o faça.
Felipe "Juca" Sanches publicou o vídeo de uma conversa inicial com Lucas Alberto sobre o Patinho Feio.
A partir de uma postagem do BR-Linux compartilhada por L., Felipe "Juca" Sanches perguntou se o EBC-32020 era um projeto de hardware nacional e se alguém tem esquemas ou dumps de ROM. L. encontrou um documento da UFRJ que sugere que sim, mas sem conclusão.
Anne Isabelle tentou ligar um iMac antigo que apresentava defeito na imagem do CRT. Lucas Alberto disse que o problema era no horizontal, possivelmente um capacitor seco, e não no tubo, e deu dicas para remover um parafuso espanado. Anne removeu o parafuso com uma micro retífica e trocou a bateria; o defeito da imagem deixou de aparecer, e o computador passou a ligar sempre e com o relógio correto.
Giga adquiriu um CP500 com defeito que tinha uma placa com três EPROMs no lugar de uma. Felipe "Juca" Sanches, que emulou no MAME as diferenças entre o CP500 e o TRS-80 Model III, explicou, com base no driver, que um flip-flop alterna o bit A11 do endereço para selecionar entre duas ROMs (código do sistema e um monitor) e que a terceira é a ROM de caracteres. Segundo ele, essa placa não é uma adaptação daquele exemplar, e sim existe em todos os CP500.
Lucas Alberto descobriu o museu de história da computação da UFRJ. Mesmo com o museu fechado para reforma, pôde visitar as máquinas, e a equipe perguntou sobre uma parceria para manutenção de retrocomputadores. Ele pretende procurar ali material sobre o Patinho Feio. L. comentou o Living Computers Museum de Seattle, fechado desde 2020, e mostrou um vídeo do Xerox Alto rodando o Dali Clock e uma foto do Cray-1 de lá; a conversa passou aos monitores de fósforo azul.
Lucas Alberto compartilhou outro PDF do livro, mais legível nos esquemas do que o scan do repositório. Felipe "Juca" Sanches explicou que os mesmos esquemas aparecem na tese de mestrado de Edson Fregni, escaneada em resolução maior. Os participantes recomendaram a Estante Virtual para comprar o livro físico.
Felipe "Juca" Sanches criticou um vídeo em que disquetes de desenvolvimento de Genesis foram usados diretamente no equipamento antes de serem copiados, o que pode alterar os dados. FTMaciel citou fitas streamer do DNIT que conteriam os cálculos estruturais da ponte Rio-Niterói e cujo projeto de recuperação nunca avançou.
Giga mostrou em vídeo um aparelho que gostaria de ver emulado, e Felipe "Juca" Sanches respondeu que o MAME provavelmente já o emula. Giga perguntou se há outros Heathkit no Brasil; L. disse ter um igual, comprado barato como "calculadora quebrada", e Giga contou que ganhou o seu. Giga também mostrou um terminal que acabara de chegar ao seu acervo, enviado pelo correio.
L. compartilhou o die shot do R800 e comentou que ele parece estranho por dentro; Pablo Vasques Bravo-Villalba achou-o mais desorganizado que outros processadores da época. RicBit explicou que o ZX80 usa o registrador de refresh do Z80 como contador para gerar vídeo e defendeu que o R800 usa microcódigo, com base em uma entrevista sobre o erro na instrução DAA. Pablo Vasques Bravo-Villalba citou entrevistas da MSX Magazine segundo as quais o R800 foi feito com gate array e células padronizadas, e disse que é um gate array da Yamaha. O grupo discutiu onde ficaria a ROM de microcódigo, como funcionam microinstruções e o pipeline do R800.
L. informou que Travis Goodspeed está decapsulando o Zilog Z8, primeiro um genérico e depois o que contém a ROM do Smart Start. Felipe "Juca" Sanches sugeriu colocar o driver no mesmo arquivo do Pense Bem 2017 no MAME, que já emula o Z8, e apostou que as respostas dos livros vêm de um gerador pseudoaleatório com LFSR. Ele também listou máquinas com Z8 no MAME: placa MIDI ISA da Music Quest, CompJU+TEr, Quantel DPB-7001, Fidelity Mini Sensory Chess Challenger, BERT, Lear Siegler ADM 23 e coin MCUs de arcades.
Travis Goodspeed fotografou o die de um Z8 genérico para avaliar os cuidados necessários antes de abrir o chip com a ROM útil. Felipe "Juca" Sanches analisou as fotos e levantou hipóteses: a ROM B, com 6 colunas de 20 bits, seria de microcódigo, e a ROM A seria o código executável. Lendo cada ponto como 2 bits, a ROM A resulta em exatos 2 KB com 1 bit de paridade a cada 32 bits; falta descobrir como os bits estão embaralhados.
Felipe "Juca" Sanches notou que o Epson QX-10, micro de 1983 baseado em Z80 com o processador gráfico µPD7220, é mencionado no filme Superintelligence (2020).
Felipe "Juca" Sanches perguntou quem teria interesse em participar de um projeto envolvendo o jogo Another World.
L. informou que Travis Goodspeed decapsulou o chip do Smart Start e esperava remover as camadas e extrair a ROM no mesmo dia. Felipe "Juca" Sanches disse que quer comparar o microcódigo entre as duas amostras.
Felipe "Juca" Sanches divulgou a exposição do MSXSP sobre os 40 anos do padrão MSX na Canal 3 Expo, nos dias 28 e 29 de outubro, com palestras de Stefano Arnhold (Tectoy) e Paulo Peccin (WebMSX e Javatari).
Felipe "Juca" Sanches compartilhou um pull request de MooglyGuy com otimizações no núcleo AVR-8 do MAME, que vai melhorar a emulação do Pense Bem 2017. Depois convidou L. a escrever um post sobre o Pense Bem/Smart Start para o arqueologiadigital.org.
Guilherme Ranoya publicou uma lista de softwares de DOS que pôs online, com links para rodá-los no navegador, entre eles 3D Studio, AutoCAD, Fantavision, QBasic, VisiCalc, WordStar e Windows 2.0. Disse que não conseguiu emular o VisiOn nem um mouse serial no DOSBox para usar o GEM, e que instalou o Lotus 1-2-3 pela edição para o governo americano, que vinha sem proteção contra cópia. Felipe "Juca" Sanches relembrou softwares que usava no DOS.
L. compartilhou uma versão até então desconhecida do 4D Sports Driving (Stunts) v1.1, preservada com Kryoflux no archive.org. Guilherme Ranoya perguntou se há diferença ou se é apenas uma cópia renomeada, e L. observou que os tamanhos dos arquivos parecem ser diferentes.
Temas: Engenharia reversa e emulação do Technics KN5000 (31), Recuperação da ROM do Pense Bem (12), Patinho Feio (5), Fontes sobre a computação brasileira (7), MSX, Z80 e ferramentas de engenharia reversa (6), Sintetizadores e instrumentos musicais (7), MAME: drivers, ferramentas e comunidade (11), Preservação, acervos e questões jurídicas (12), História da computação, software e jogos (17), Eventos e comunidade (1)
Shelton Ribeiro divulgou a disponibilização de um novo devkit de Nintendo 64. A conversa passou para terminais: Felipe "Juca" Sanches disse que gostaria de ligar um terminal daqueles à porta serial de um PC com GNU/Linux para fazer login em modo texto, como já tinha feito com um 386 no DOS. Giga explicou que o TVA80 não é serial, e sim um terminal ASCII com buffer de entrada e saída de 8 bits, e que pretende usá-lo no seu projeto de computador operado por chaves, ao estilo Altair/IMSAI.
A partir do vídeo "The game that broke MAME", compartilhado por Robson França, Felipe "Juca" Sanches contou que havia voltado, duas ou três semanas antes, a implementar o driver de emulação do teclado Technics KN5000 no MAME e que o driver ainda mostrava apenas uma tela preta. Dois dias depois, informou que a emulação já mostrava uma tela acinzentada.
L. compartilhou o manual de uso da máquina de diferenças de Babbage, publicado pelo Science Museum. Depois de ler o manual, RicBit concluiu que a máquina não teria uso prático. Shideravan opinou que esse tipo de máquina ainda não pode ser emulado no MAME, e Felipe "Juca" Sanches apontou a issue sobre um sistema de artwork 3D no MAME.
O disassembler de Felipe "Juca" Sanches levava mais de meia hora para processar o binário de 2 MB do KN5000. A demora veio do uso de símbolos de depuração encontrados no firmware como pontos de entrada adicionais, o que aumentou a cobertura. A análise também encontrou 450 jump tables ainda não tratadas. L. e RicBit sugeriram usar o Python 3.12, structural pattern matching, functools.cache ou lru_cache(maxsize=None) e itertools, e procurar trechos acidentalmente quadráticos.
Felipe "Juca" Sanches anunciou que o driver do KN5000 no MAME mostrava gráficos pela primeira vez (PR #11835), com splash screens ligeiramente diferentes conforme a versão do firmware e um framebuffer de 320x240 a 8 bpp. Sobre os pixels azul-marinho estranhos na splash screen da versão 2, Pablo Vasques Bravo-Villalba sugeriu que o LCD real borrasse a imagem, Leonardo Roman sugeriu que a cor fosse originalmente outra e RicBit sugeriu uma cor transparente que mostra a borda ou um erro de off-by-one no emulador. Felipe testou deslocar a paleta em uma posição para cada lado e concluiu que não era off-by-one: as duas tentativas pioraram a imagem.
Felipe "Juca" Sanches compartilhou um vídeo sobre o trabalho em andamento na emulação de Thayer's Quest no MAME.
Alexandre Villares compartilhou uma palestra sobre imagens estáticas com paletas variáveis que criam ilusão de movimento. Felipe "Juca" Sanches lembrou que as cachoeiras da Green Hill Zone, no Sonic 1, eram animadas assim.
Felipe "Juca" Sanches decodificou o formato do arquivo de update de sistema do KN5000 e publicou o script que o decodifica e recodifica. Poucos minutos antes do teste com o arquivo bom, porém, danificou o mecanismo de update do seu teclado, que ficou com firmware corrompido. Ele também localizou o código da sub-CPU e começou a entender como esse código é enviado pela CPU principal durante o boot, com a ideia de escrever um programa para fazer dump da mask ROM de boot da sub-CPU. Pediu a Pedro de Medeiros e a Ramiro que verificassem a versão de firmware dos seus teclados na tela de diagnóstico, para mapear os dumps que faltam: ele não tem dump das versões 1, 2, 3 e 4, mas tem uma placa com a versão 3 ainda por dumpar. Felipe comentou com RicBit a CPU TLCS900, que descreveu como um Z80 de 32 bits a 20 MHz, usada no Neo Geo Pocket Color.
Felipe "Juca" Sanches rodou um pequeno programa, montado à mão, que desenha na VGA do KN5000 a partir da ROM da placa de extensão. Sobre a imagem resultante, disse depois que a paleta de cores estava errada. Ele indicou um assembler para a CPU e, no dia seguinte, contou que já o usava com sucesso. Planejou uma PCB com RAM e EPROM ou flash para carregar programas, regravar a flash do sistema e rodar um monitor serial. Também procurou identificar o conector da placa HD-AE5000: L. indicou um guia de identificação, Pablo Vasques Bravo-Villalba sugeriu um VHDCI e Felipe concluiu que parecia ser um Molex EBBI 50D. Hugo perguntou se Felipe tinha um emulador USB de disquete para o KN5000, e Ramiro Polla brincou que Felipe já tinha comprado todos os KN5000 do Brasil.
No aniversário de 40 anos do Macintosh, Guilherme Ranoya descreveu o VisiOn, da VisiCorp: um sistema gráfico multitarefa para PC com aplicativos que compartilhavam dados, mas lento e sem software de terceiros. Ele o comparou em preço ao Xerox Star e ao Apple Lisa, e relatou que nunca conseguiu emulá-lo, embora os arquivos de instalação estejam disponíveis. Pablo Vasques Bravo-Villalba compartilhou um vídeo promocional do VisiOn. Leonardo Roman acrescentou que os aplicativos do VisiOn rodavam em uma máquina virtual, para facilitar portes.
Felipe "Juca" Sanches trocou a placa-mãe do seu KN5000, que voltou a funcionar, e guardou a placa com firmware corrompido para restaurar depois. Ele comprou uma placa anunciada como de firmware versão 2, com layout diferente; segundo ele, essa placa mais antiga tinha um DSP Analog Devices ADSP-21065L, de uma família que o MAME emula em parte. Suspeitou depois que fosse de um KN6500, e o vendedor confirmou que a foto do anúncio estava errada e cancelou a venda.
Felipe "Juca" Sanches anunciou experimentos com o SysEx Bulk Dump do KN5000 para tentar fazer dump de ROM via MIDI. A ideia é colocar valores não convencionais na memória para que algum trecho dos dados enviados seja executado, talvez começando por dados aleatórios para ver se algo trava o sistema e afunilando a busca a partir daí. Ele indicou a ferramenta Ctrlr e pediu sugestões.
L. compartilhou o Spectrum Analyser, que reúne emulador, depurador e disassembler interativo para jogos de ZX Spectrum. Felipe "Juca" Sanches viu nele funções que planeja para o seu projeto ExecTrace, incluindo a integração com o depurador do MAME. RicBit lembrou que o openMSX já oferece isso há cerca de 15 anos e contou que instrumentou o emulador com um script em Tcl para medir o tempo gasto em cada instrução de MSX BASIC (cerca de 1 a 2 ms por instrução).
Em Brasília, Felipe "Juca" Sanches e Pedro de Medeiros tentaram adaptar um drive de disquete comum ao KN5000 no Calango Hacker Clube, sem sucesso. Felipe documentou que o teclado usa os pinos reservados 4 e 6 do conector de floppy: o FD I/O, ligado à porta D, no lugar do disk change, e o FD H/D, ligado a uma interrupção. Guilherme Ranoya e Pablo Vasques Bravo-Villalba especularam sobre o motivo dessa alteração. Instalaram então um Gotek, que funcionou para salvar arquivos mas não para instalar o update de sistema. A hipótese de Felipe, sem certeza, é que o boot do teclado seja mais rápido que a montagem da imagem pelo Gotek.
De volta a São Paulo, Felipe "Juca" Sanches concluiu que o problema de MIDI visto em Brasília provavelmente se devia à chave COMPUTER, que não estaria na posição MIDI: ao mudá-la no seu teclado, o MIDI parou de funcionar. Ele instalou pela primeira vez um firmware modificado, com splash screen "Happy Hacking KN5000", sem o "Sound Name Error" da sub-CPU, o que, segundo ele, prova que o formato do update está resolvido. Também suspeitou que falhas anteriores viessem de disquetes formatados à mão, e verificou que gravar o disco com dd a partir da imagem do fabricante funciona.
Guilherme Ranoya compartilhou a notícia de que Doom passou a rodar oficialmente em um cortador de grama. Felipe "Juca" Sanches observou que o software precisaria de dump e emulação no MAME, pois deixaria de funcionar depois de 09/09/2024.
Felipe "Juca" Sanches procurou ferramentas de IA para ajudar a interpretar disassembly. Ele encontrou um assistente de engenharia reversa para o Ghidra, ainda não avaliado, e um artigo no arXiv sobre o tema. RicBit aprovou a ideia.
Felipe "Juca" Sanches publicou um vídeo com uma tela de hexdump do teclado Technics KN5000. Quando kretcheu sugeriu fazer OCR das telas, ele explicou que a ROM a extrair tem 0x80000 bytes, o que daria 4096 telas, e que o método de salvar em disquete grava só 0x1000 bytes por vez. Disse que seguiria procurando uma solução mais prática.
RicBit criou um GPT customizado, o "MSX Debugger", que controla o openMSX por meio de uma interface Python e do modo --control stdio (cadeia ChatGPT → Flask → XML → Tcl → openMSX). O modelo recebia trechos resumidos do MSX Red Book e foi usado para desassemblar e comentar o Antarctic Adventure. A conversa tratou da janela de contexto pequena, da memória externa via webhook, dos erros do modelo (tratar LDIR como cópia quando era preenchimento, errar a aritmética de endereços) e da decisão de passar a aritmética para o servidor. RicBit indicou a documentação de GPT Actions para quem quisesse montar algo parecido.
Felipe localizou a rotina que desenha as mensagens da interface de update de firmware do KN5000, que são bitmaps e não strings ASCII, e, dentro dela, um trecho que lê da RAM os padrões de bits gravados pela rotina de leitura do painel de controle. Com um programa próprio carregado por arquivo RCM, descobriu um quarto combo de botões; ao religar o teclado com esse combo, a placa ficou tijolada. Em seguida simulou no MAME o buffer de estado do painel para ativar o Flash Memory Update, em HLE, porque o microcontrolador de varredura usa mask ROM. Depois trocou a mainboard e começou a mapear os bits de cada botão, com a meta de ter uma demo para a Tosconf de 23/março.
Shideravan temia que o acordo entre os desenvolvedores do Yuzu e a Nintendo criasse um precedente contra a emulação e contra a quebra de proteções de hardware. RicBit explicou que um acordo extrajudicial não forma precedente jurídico, embora mostre quanto custa litigar, e mencionou uma decisão francesa sobre a validade da GPL. O grupo também leu a página legal da Nintendo sobre ROMs e emuladores e comparou a emulação de hardware antigo com a de plataformas que ainda estão à venda.
Felipe tijolou uma segunda placa do KN5000. O update de firmware ainda funcionava, mas o boot entrava em loop, provavelmente por causa de dados corrompidos na flash de custom rhythm memory. Ele considerou duas saídas via firmware modificado: uma rotina que regravasse essa flash a partir do Initial Data Disk, ou um bootloader carregado de disquete. Ao documentar a rotina de update, identificou uma string_compare e a forma como os arquivos do disquete de instalação são tratados ("DATA FILE 1/2", formato PCK). Preferiu não dessoldar a flash paralela de 2 MB. Em 9/março anunciou que a placa voltou a funcionar.
Lucas Alberto perguntou se havia emuladores do Patinho Feio. Felipe apontou o driver no MAME (src/mame/usp), a versão em Arduino e a versão para Raspberry Pi Pico, ambas feitas para painéis-réplica, e passou o comando de compilação parcial do MAME. RicBit contou que a compilação completa levou 85 minutos e apontou um sprintf com risco de buffer overflow em patinho_feio.cpp, o que levou a uma discussão sobre trocar sprintf por snprintf no MAME.
Lucas Alberto começou um emulador do Patinho Feio em C com SDL, partindo do código do Arduino e com hexdump da RAM durante a execução. Recebeu acesso à organização ArqueologiaDigital no GitHub e, por sugestão de Pablo, passou a usar Dear ImGui na interface. Conseguiu carregar binários do repositório do Patinho Feio e rodar parte do HEXAM (apendice_g__hexam.bin) até o ponto em que o programa espera E/S. Felipe explicou as cores do painel e por que as luzes de fase não mudam (a emulação é por instrução), além de lembrar que o endereço de entrada é dado pelas chaves e que a memória é de 4 kB.
Lucas Alberto digitalizou num museu a documentação do SDE-40, microcomputador desenvolvido pela UFRJ, com seções sobre deflexão do monitor, fita e um teclado em TTL. Segundo ele, a máquina teve versões com 8008, 8080 e Z80, e o exemplar do museu é o protótipo com 8008. Ele compartilhou a primeira parte do PDF. Felipe identificou 16 kB em EPROM (2708 ou 2716) e propôs fazer o dump com o TL866 e escrever um driver para o MAME.
Lucas pediu indicação de gravador de EPROM. Leonardo Roman recomendou o XGECU T48, terceira versão do TL866, ou o T56, e Felipe constatou que o software livre minipro parece já suportar o T48. Lucas recebeu o gravador em 4/abril.
Felipe desenhou em SVG o painel do Technics KN5000, com 1280x600 px e a tela em 320x240, ajustando as cores a partir de uma foto do teclado. Publicou o desenho no repositório KN5000_MAME_artwork e começou a convertê-lo em layout do MAME, que não aceita SVG diretamente. A primeira versão já mostrava o PNG com a tela posicionada; faltava declarar LEDs e botões.
Anne Isabelle perguntou sobre importar um Macintosh antigo, e Pablo recomendou evitar couriers por causa da cobrança de impostos. Ela comprou um Macintosh pelo Tiendamia, sem sistema operacional, e passou a procurar teclado e mouse, incluindo adaptadores ADB como o adbuino.
Com o layout no MAME, Felipe mostrou as luzes do painel acesas durante o boot. Ligando o teclado com três botões pressionados, os LEDs indicam em binário a versão 10 do firmware, o que confirmou que a leitura dos botões estava certa. Ele contou que tem dumps de duas versões do firmware e que pretende extrair as ROMs restantes via MIDI, que RicBit lembrou ser uma serial 8N1.
Lucas tinha dúvida sobre onde as instruções de deslocamento e giro guardam o resultado; Pablo sugeriu que fosse no acumulador, e Lucas decidiu implementar assim. Lucas descobriu também que o HEXAM corresponde à listagem do Apêndice G do manual do montador do Patinho Feio. Depois de corrigir a instrução PUG e implementar a SUS, o programa chegou à instrução PARE. Felipe explicou que a PUG (pula e guarda) não usa pilha e por isso não permite recursão, descreveu as placas de interface para periféricos (possivelmente uma DECwriter III) e as características da Teletype ASR-33: 110 baud, ASCII de 7 bits com paridade.
Felipe lembrou que transcrever uma listagem impressa também é uma técnica de dump e que parte das fitas perfuradas do Patinho Feio ainda não foi lida: algumas estão com Sebastiao, outras ficaram guardadas com terceiros. Indicou o vídeo da leitora de fita da USP, cujo cabeçote emperrava, e o professor Fernando Redigolo (LaSSu/USP) como contato para agendar novos testes.
Giga contou que um amigo guarda um Scopus Sagita, discos e fitas de mainframe e gabinetes IBM. Descreveu seu painel para Z80, que carrega programas bit a bit usando BUSREQ/BUSAK, e o plano de gravar um programa monitor em EPROM; Lucas Alberto falou do seu projeto de escrever uma BIOS e dar boot por disquete. Discutiram a necessidade do gerador de clock 8284 para CPUs Intel, que Lucas concluiu ser dispensável em velocidades mais baixas, e o minicomputador da Edisa; Giga perguntou a Felipe pelo paradeiro do HP 2116 da USP.
L. compartilhou uma thread de Tube Time sobre o levantamento do esquemático de uma placa de Apple II a partir de fotolito. Felipe disse que fazia o mesmo processo com o sintetizador de Guido Stolfi e pediu ajuda para o trabalho que falta.
L. e Felipe compartilharam o Brewintosh, uma réplica do Macintosh em tamanho real impressa em 3D.
Felipe comentou um vídeo sobre a recuperação de uma fita da transmissão da NBC do pouso da Apollo 11, em que a fita foi "cozida". Anunciou também que pretende fazer o dump das ROMs de aparelhos Sony que tem guardados (players, recorders, videomixers) e emulá-los, e convidou interessados a participar.
Felipe preparou os slides da palestra sobre o KN5000 na Tosconf, conferência do Laboratório Hacker de Campinas, e prometeu repeti-la no YouTube caso não fosse gravada. Depois do evento voltou com um tubo CRT e passou a pensar em projetar um gabinete cocktail.
Felipe convidou Flávio Amieiro a retomar o projeto de refazer as PCBs do sintetizador de Guido Stolfi. Flávio topou, mas disse não lembrar em que ponto o trabalho tinha parado.
Alexandre Villares compartilhou um estudo de mapeamento da literatura sobre a demoscene no Brasil, e Felipe destacou trechos e a coletânea Brazil Bits para C64. RicBit sugeriu como possíveis primeiros demos brasileiros um dos Cavaleiros do Zodíaco para MSX2 e a intro da Plansoft. O grupo discutiu o cartucho Ligue-se no Expert, cuja música teria vindo de uma MSX Magazine e cujas telas lembram um demo japonês (L. citou o do Wavy 10 da Sanyo), e se o cartucho já existia na época do Expert 1.0.
Erin Pinheiro quis saber de onde vem uma captura de tela do Unitron Mac 512. A única ROM disponível tem 64 kB e é quase idêntica à do Mac original, enquanto os relatos falam de uma ROM de 128 kB. Procurando a ROM, Erin encontrou uma do Unitron 1024 e, em discos da Unitron, uma fonte com o bitmap do disquete "MAC 512". Eduardo Loos contou que o Mac 512 chegou a ser vendido (estimativas de 200 a 300 unidades), sempre com drive de 3½", e que a Unitron preparava um sucessor com 1 MB e SCSI. RicBit relatou que o dono da Unitron voltou a fabricar só lâmpadas.
Felipe percebeu que a placa do KN5000 que comprou de Ronaldo Verardo tem um adesivo indicando firmware versão 1 e pretende refazer o dump dos chips dessoldados para conferir. Ronaldo disse que nunca atualizou o firmware.
Felipe apontou trocadilhos nos textos de Castle of Illusion, e Shideravan defendeu que a versão de Master System é melhor que a de Mega Drive, pelo level design menos linear, e que os sprites do Mickey ficaram distorcidos no Mega. Pablo apontou a diferença de pixel aspect ratio entre os dois consoles.
Pablo divulgou o Nuked-SC55, emulador do Roland SC-55; Felipe disse que já sabia do projeto pelos bastidores do mamedev. O grupo cogitou reproduzir o LCD num OLED com Raspberry Pi, como no MT-32 Pi. Depois Pablo contou que o emulador, baseado no decap do chip sintetizador do SC-55mkII, ganhou uma versão que emula outros módulos com o mesmo chip, e perguntou onde obter as ROMs de firmware.
Felipe mostrou um protótipo do port da VM do Another World para o KN5000, escrito em assembly TLCS-900 por falta de compilador C para essa CPU e ainda dependente de hacks no firmware. Corrigiu a rasterização de polígonos, a paleta e a renderização de strings, publicou o código no repositório kn5000_homebrew (demos/anotherworld) e encontrou um bug na exibição do disassembly TLCS-900 no debugger do MAME. Em 18/abril relatou um loop infinito na troca de threads da VM e planejou comparar a sequência de task switching com a implementação HLE no MAME para achar o ponto em que o port diverge.
O Macintosh Plus de Anne chegou com defeito e voltou a funcionar depois de aberto. Leonardo Roman sugeriu testar as ROMs e procurar solda fria nos conectores da placa analógica; RicBit e L. lembraram de mau contato em chips soquetados e de capacitores envelhecidos. Anne perguntou quem poderia fabricar a PCB do BlueSCSI e depois encontrou uma à venda.
A partir de uma imagem que publicou, Felipe perguntou se o perigo descrito era real ou exagerado. FTMaciel confirmou, citando sobretudo capacitores que vazam e podem causar mais danos quando o aparelho é ligado, e RicBit contou que um drive de Apple guardado por cerca de 15 anos soltou fumaça verde ao ser ligado na tomada.
Pablo comentou a existência de um QuickBASIC para Mac que gera binários para 68020/68881. Também descreveu a nova máquina virtual CP/M do SymbOS, o sistema gráfico de Prodatron para MSX e outras plataformas, que roda aplicações CP/M em janela. L. localizou a página e o código-fonte em C do CPvM.
Felipe lembrou que Travis Goodspeed fez o decapping do chip do PenseBem, mas que o desembaralhamento dos bits da ROM continua sem solução. Sugeriu testar permutações e descartar as que geram opcodes inválidos, com a ressalva de que enumerar as possibilidades não é trivial e de que permutações erradas podem gerar só opcodes válidos.
A partir do protesto contra a Ubisoft por causa de The Crew, o grupo discutiu a perda de acesso a jogos e aplicativos comprados quando lojas e serviços são desativados (PS3, Wii U, 3DS, iPad) e se as empresas deveriam devolver o valor pago ou oferecer mídia e backup. Guilherme Ranoya comparou a situação às proibições de backup de disquetes e afirmou que a pirataria ainda é a forma mais efetiva de preservar software.
L. divulgou a abertura do código do MS-DOS 4. Erin Pinheiro avaliou que o licenciamento do DriveSpace dificultaria a abertura do 6.22. A conversa passou pela origem do termo "Winchester" para disco rígido e pelo uso de Norton Utilities e PC Tools em emuladores, e foram compartilhados vídeos de compilação do DOS 4 em DOSBox/QEMU e no FreeDOS.
RicBit apresentou um emulador de MSX que reconhece por OCR o texto japonês na tela e mostra legendas em português geradas pela API do Google Translate. O grupo discutiu a falta de contexto entre telas e a ideia de execução especulativa: emular uns 300 quadros adiante, mantendo vários save-states. RicBit também testou um LLM, que melhorou muito a tradução mas tem latência alta, e calculou o custo das chamadas de API, que considerou inviável para uso por outras pessoas sem otimização. Discutiu-se ainda como deduzir o encoding do texto na memória a partir do OCR. Na VRAM de Undeadline, RicBit observou uma animação feita por color cycle.
Robson França compartilhou um vídeo de Another World rodando no ZX Evolution. Felipe apontou falhas de áudio e gráficos. L. indicou a página do ZX Evolution, que tem formato mini-ITX, e Robson explicou que se trata de uma versão melhorada do Pentagon, clone russo do Spectrum.
Felipe comprou um Mega Drive que veio com uma fonte de 12 V e notou que o console não indica tensão nem polaridade. O grupo comentou que as fontes da época eram não reguladas, com tensão bem maior sem carga. L. lembrou que o Mega Drive tem um regulador na entrada, e RicBit conferiu no esquemático que parece ser um 7805.
Lord Spy pediu votos para o Projeto Gamegesis no ICL TANK, apresentado como iniciativa de conhecimento sobre jogos e defesa da preservação de jogos.
L. avisou das novas versões do maskromtool, de Travis Goodspeed, agora com disassembly; Felipe confirmou que a ferramenta usa o unidasm do MAME, e L. que ele suporta Z8. Felipe compartilhou o arquivo do projeto (smartstart.zip) e passou a revisar os bits detectados pela ferramenta (66 colunas), corrigindo à mão os erros. Ele identificou que o desembaralhamento é o z86x1 e que as duas primeiras fileiras formam a ROM de teste de fábrica do Z8, quase idêntica à do sintetizador Wersi DX10.
Felipe começou a revisão visual de cerca de 16 kbits, perdeu parte do trabalho numa falha do programa e passou a salvar com frequência e usar testes de regressão. Publicou um disassembly e um binário preliminares, e com L. usou as instruções ilegais para localizar colunas com bits errados. Um CALL para fora da faixa de endereços da ROM foi corrigido, e o opcode 5F foi identificado no manual da Zilog como WDT, instrução que o disassembler de Z8 do MAME não reconhecia.
Felipe pediu a Hugo exemplares do Pense Bem para reinspecionar a PCB e escrever o driver no MAME. Também divulgou uma atividade aberta no Garoa Hacker Clube em 23/05/2024 para levantar o esquemático e ler o código do Z8. Erin indicou a digitalização que fez do livro do Pense Bem com Sonic para o Sonic Retro, que tem um erro de impressão na página 31.
Erin transcreveu em meia hora a ROM B (54x120 bits, com o microcódigo do Z8). Também enviou uma imagem em PNG de maior resolução da ROM A, com a dica de conferir cada coluna no momento de marcá-la. Felipe recomeçou a transcrição com essa imagem, terminou a extração dos bits em poucas horas e publicou o disassembly e o binário corrigidos.
Erin tentou decodificar a ROM do Tamagotchi a partir das imagens do die no siliconpr0n, mas não conseguiu reproduzir a ROM do Tamagotchi P1 que está no MAME. Ela pediu informações sobre como aquele dump foi feito, porque a mesma pasta tem outros modelos, entre eles possivelmente o P2, que ela acredita ainda não ter sido dumpado.
As instruções "Illegal" restantes eram um bloco de dados depois do IRET em 73C, e Felipe localizou os ponteiros para essa área e a rotina do IRQ4. L. mapeou 39 rotinas chamadas por CALL, várias terminando em fallthrough, possivelmente os jogos. O grupo discutiu como a fonte do display (7 dígitos, um de 14 segmentos, multiplexados como 8) estaria codificada. Felipe confirmou que o ponto de entrada é 00C e publicou a ROM de teste interna, e L. compartilhou fotos antigas do Garoa com o Pense Bem desmontado.
Ramiro Polla perguntou onde encontrar uma cópia do GRASS (RT/1) para DOS, pedida por um amigo artista. Felipe ligou o pedido a mensagens antigas do grupo.
Felipe retomou os esquemáticos começados 11 anos antes e mapeou as portas: bits de P0 e P3 selecionam o dígito ativo do display, P1 define os segmentos e, por estar ligada à matriz do teclado, deve também ler as teclas, e P2 bit 5 parece acionar o buzzer. Ele notou que o Pense Bem de 2017, com AVR8, usa um esquema semelhante de multiplexação e supôs que o layout de I/O foi copiado. No código, levantou a hipótese de que a fonte é lida a partir de 7CBh e de que o conteúdo do display fica em 5Fh–66h. Ao executar passo a passo no MAME, entendeu como o register pointer dá acesso aos registradores especiais na inicialização. Por causa desse trabalho, foi convidado a um servidor de Discord sobre VTech, onde o Smart Start constava como não dumpado.
Ao revisar trechos confusos, Felipe encontrou mais bits transcritos errado, ligados, por exemplo, ao vetor do IRQ5 e a um JR que caía num operando. Depois das correções, a inicialização configura o timer 0 em modo single pass, o que parecia estranho. Após L. responder com uma imagem, Felipe verificou que a rotina do IRQ4, chamada pelo timer 0, faz essa configuração logo antes do IRET.
Felipe repassou o projeto H2Z80, um computador Z80 montado com fiação manual. L. mostrou fotos de seu MSX2 em protoboard, nunca concluído, incluindo uma protoboard feita especificamente para o VDP.
Felipe pegou três Pense Bem no Garoa e abriu um para inspecionar a PCB. Ele localizou na ROM parte da fonte do display de 7 segmentos (o restante possivelmente a partir de 7D5) e publicou uma versão comentada do disassembly.
O Turbo9, um núcleo 6809 com pipeline, levou a conversa ao CP-400. Pablo descreveu uma carta de 1986 à revista Micro Sistemas que comparava o CoCo com o MSX e explicou as limitações dos modos gráficos do CoCo. Os participantes falaram dos CP-400 que guardam, do furto de uma Expert3 de L. e do prazer e do trabalho de manter hardware real em comparação com o uso de emuladores.
Felipe descreveu um enigma: entre uma tabela de saltos e a fonte do display há bytes que desmontam como um loop infinito e são alvo de um jump relativo no boot, mas que outra rotina lê como uma tabela de 21 bytes. As hipóteses foram dados que coincidem com código, código morto e espera por interrupção. Felipe disse que o código foi escrito diretamente em assembly, por volta de 1987, para 2 KB de ROM. RicBit observou que o trecho seguinte, em 7CD, parece alinhado, o que sugere que os bytes têm uso.
Cristthian apresentou a Ergane, startup de arqueologia digital. Felipe esclareceu que o grupo usa o termo em outro sentido, o de força-tarefa para preservar hardware e software históricos, e RicBit mostrou uma peça impressa em miniatura.
L. compartilhou um artigo sobre o MicroMac. Pablo comentou as dificuldades com a documentação imprecisa de chips descritas no texto.
Felipe repassou um vídeo que investiga se a TecToy vendia um Mega Drive disfarçado de Master System.
Felipe retomou o estudo dos fotolitos e esquemáticos do sintetizador musical do professor Guido Stolfi, de 1975, e passou o circuito para o KiCad. Guido respondeu às dúvidas e explicou o circuito de recepção serial: um 7493 divide 100 kHz para gerar o clock de 12,5 kHz, outro conta os bits, e um monoestável 74121 ressetа os contadores enquanto gera, através de um 7440, o pulso de strobe. Guido também enviou fotos da placa com os ajustes.
Felipe reencaminhou mensagens de 2017 em que o professor João José Neto, depois de saber da recuperação do HEXAM, reconstituiu de memória fragmentos do micro pré-loader do Patinho Feio em hexadecimal e pediu testes no simulador. Ele também registrou que o loader absoluto foi escrito por Victor Mammana de Barros em macro assembler do IBM 1130.
Felipe compartilhou comentários da revisão do PR #11835 do MAME, com o esqueleto inicial dos drivers de teclados Technics.
Felipe repassou uma foto de Andy Warhol demonstrando o Amiga 1000. Nano Gennari citou o relato de que os engenheiros temiam travamentos durante a apresentação, e L. compartilhou a notícia da recuperação das obras perdidas de Warhol feitas no Amiga.
Felipe repassou uma postagem de Ken Shirriff sobre uma impressora de 27 kg usada em mais de 50 voos. O grupo trocou experiências com impressoras laser e jato de tinta, entre elas uma HP DeskJet 350C portátil de Erin que voltou a funcionar, e comentou a notícia de que o Japão só deixaria de usar disquetes em 2024.
Felipe contou que vinha instalando firmware modificado no Technics KN5000 por disquete, dezenas de vezes por dia. Planeja um software que envie código executável ao teclado pelo cabo MIDI.
L. avisou que viria ao Brasil e marcou uma sessão de domingo no Garoa Hacker Clube, com Felipe, para trabalhar na emulação do Pense Bem original (Z8) no MAME, aberta a quem quisesse participar.
FTMaciel comentou que a BIOS do Itautec IS30 Plus parece ter um teste de burn-in e um modo de terminal VT100. Felipe disse ter estudado só um pouco da ROM do I7000.
Felipe anunciou o merge do PR #12649, o primeiro do driver do teclado Technics KN5000 no MAME, numa versão enxuta para passar na revisão de código. O restante será submetido aos poucos.
Felipe notou que o sintetizador Technics SX-WSA1R (1995) tem um painel parecido com o do KN5000 e usa duas CPUs TLCS-900 (TMP95C061). Encontrou dumps das quatro ROMs soquetadas, comprou e compartilhou o manual de serviço e viu que o boot da CPU principal tem estrutura quase igual à do KN5000. A ideia é usar o WSA1R para entender o protocolo entre as CPUs do KN5000. Felipe também escreveu um esboço de driver no MAME, que já passa nos autotestes, e desenhou a arte do painel em SVG.
Robson França perguntou se o chip SVP, o mesmo do Virtua Racing, permitiria rodar Another World no Mega Drive a 30 fps ou mais. RicBit sugeriu fazer nativo na CPU do console, L. sugeriu compilar a VM do jogo para 68000, e Felipe lembrou que já existe versão para Mega Drive.
RicBit relatou a passagem por Berlim: não chegou a visitar o Computerspielemuseum, mas foi a um museu de espionagem, onde viu uma régua de cálculo para criptografia, um Epson HX-20 e dispositivos de escuta.
Erin comprou um portátil Z80 com BBC BASIC vendido como quebrado e descobriu que o defeito era só um fusível queimado. Felipe verificou que o aparelho já está no MAME, e Erin indicou que ele foi incluído ainda no MESS 0.37b6 e que a ROM é soquetada, podendo ser dumpada com um TL866.
Felipe explicou que a placa caça-níquel Amazonia King, da IGS, depende de uma ROM de boot escondida no ARM7, que valida o checksum do jogo. Desenvolvedores do MAME criaram uma ROM com um trojan que lê essa ROM interna e a envia por uma porta serial da PCB. Como a ROM do trojan é embaralhada e veio sem código-fonte, Felipe a examinou carregando-a no debugger do próprio MAME.
Felipe desenhou no Inkscape o painel de controle do gerador de ritmos automáticos do órgão Wurlitzer 555. O desenho vai virar um layout do MAME com simulação dos circuitos de som por netlist. Erin e Pablo ajudaram a identificar rótulos desgastados (ACCENT, NORMAL/LOWER KEYBOARD VOLUME/FULL).
Felipe compartilhou uma issue do repositório PunchedTapeScanner com o agradecimento de um museu de história da computação da Eslovênia, acompanhada de fotos.
Felipe compartilhou uma mensagem de um entusiasta chinês que, com outras pessoas, mantém o demodb.org, base de dados de teclados eletrônicos e suas músicas de demonstração. Ele perguntou sobre o andamento da emulação do Technics KN5000 no MAME e ofereceu ajuda com arte e documentação.
Participantes se reuniram no Garoa Hacker Clube no que Shideravan chamou de primeiro encontro brasileiro extraoficial de desenvolvimento do MAME. Felipe "Juca" Sanches disse que já houve encontros assim no Calango Hacker Clube, em Brasília. Perguntado sobre a combinação de um possível easter egg do Pense Bem, ele indicou as teclas "5" + "operação" logo após o boot, com a ressalva de que poderia ter interpretado errado o código ou levantado errado o pinout do Z8. Ele também ofereceu um Pense Bem a quem desenhar o esquemático da placa no KiCad.
Felipe "Juca" Sanches comentou que apagou seu romset completo do MAME 0.191 e estava baixando o do 0.269. Shideravan sugeriu escolher um hardware simples, emulá-lo desde o início e documentar o processo em vídeo. Felipe respondeu que não existe hardware simples e citou o Fuzebox como exemplo de projeto que parecia fácil. Shideravan contou que atualiza todo mês ROMs, CHDs e software lists.
Felipe "Juca" Sanches desenhou uma arte vetorial do painel do módulo Yamaha MU2000 e a enviou ao MAME no PR #12725, que foi aceito. A interface ficou quase completa; só falta o encoder rotativo. A emulação do chip de som continua incompleta: Felipe não conseguiu obter som do driver, e a música demo interna trava porque o código fica em loop esperando um bit que o driver ainda não implementa.
A partir de um PR em que David Haywood (Haze) reclama das revisões de Cuavas, o grupo discutiu o efeito de code reviews demorados e rigorosos sobre quem contribui com o MAME. Felipe "Juca" Sanches contou que tirou um pedaço pequeno de um PR de três anos e o enviou como PR novo, que foi aceito. Depois reenviou o restante como outro PR, que voltou a receber críticas. Ele também questionou uma crítica a um estilo de código que já é usado nos outros cores TLCS-900 do MAME e disse que não recebeu resposta.
Felipe "Juca" Sanches corrigiu um driver do MAME para que ele interprete os bits das portas de I/O que controlam os LEDs e o contraste do LCD. Ele também compartilhou outro PR.
Pedro de Medeiros compartilhou a fonte OpenType Z80 Sans, que faz o disassembly de instruções Z80. Também indicou a Felipe "Juca" Sanches um módulo de processador TLCS-900/H para o Ghidra, e Felipe disse que iria testá-lo.
Felipe "Juca" Sanches pediu ajuda para arquivar todo o conteúdo da página de downloads do site da CA-Software sobre teclados Technics antes que o site saia do ar. RicBit sugeriu automatizar o trabalho com um crawler e ofereceu como base um script que já tinha escrito para outro site.
Felipe "Juca" Sanches levantou o esquemático da placa de extensão para HD do KN5000 e montou um cabo que liga a porta paralela a um Arduino. A ideia era fazer o dump de ROMs e criar um monitor com peek/poke. Ele analisou a ppkn50.dll do programa HD-TechManager5000 com strings, winedump e objdump, e L. sugeriu usar o Ghidra. Pela análise, Felipe montou uma tabela dos valores numéricos que, segundo supõe, identificam cada operação do protocolo com a placa HDAE5000. Ele também notou que está reconstruindo a forma de um cabo sem documentação que nunca teve em mãos.
Felipe "Juca" Sanches injetou código no boot do KN5000 para enviar bytes da ROM pela porta paralela. O dump de 512 KB da Program ROM bateu com o checksum de um dump que ele tinha feito por outros métodos. Ele fez depois o dump da placa HDAE5000, em uma versão (v2.06i) mais recente que as que já tinha. Também obteve o par de ROMs "table_data", do qual só tinha a ROM ímpar, e com isso o emulador passou a mostrar a tela de erro de comunicação entre as CPUs. Para passar dessa tela, faltam pelo menos o micro-DMA no core TLCS900 e o dump da mask ROM de boot da subcpu.
Felipe "Juca" Sanches avisou que estaria em Brasília de 22 a 29 de outubro e propôs uma sessão de hacking no Calango Hacker Clube, aberta a outros membros da cidade.
Felipe "Juca" Sanches pediu ajuda para decodificar um bitmap monocromático de 616 bytes com a mensagem "FD TO FLASH MEMORY". A resolução certa era 224x22. RicBit escreveu um script em Python que converte um hexdump em PBM, e L. sugeriu abrir os dados no GIMP como raw. Felipe queria ver as imagens para trocar ponteiros por nomes no disassembly da rotina de atualização de firmware. Ele também criou um repositório git com o disassembly da Program ROM, para compartilhar de forma privada.
Felipe "Juca" Sanches investigou uma rotina que parecia inalcançável e, no esquemático, encontrou resistores que permitem trocar os chip-enables das ROMs. Ele constatou que as ROMs table_data usam /CS2 e que, pelo datasheet, o boot acontece por padrão nesse chip select; portanto são elas que contêm o código de boot. Para emular isso, será preciso implementar mapa de memória dinâmico no core TLCS900 do MAME. Se for viável de forma segura, a descoberta também pode permitir apagar a flash e liberar 2 MB para código próprio.
O grupo discutiu a publicação do código do Winamp Legacy com uma licença restritiva. Felipe "Juca" Sanches disse que o código não é software livre e serve apenas como registro histórico. Houve também debate sobre copyright de obras não publicadas e sobre a presença de código GPL e de código de terceiros no repositório. Em 17 de outubro, Felipe compartilhou uma reportagem sobre a remoção do repositório no GitHub.
Clemar Folly Jr entrou no grupo por indicação de Leonardo Roman, que já o havia contatado sobre a placa do Pense Bem. Ele apresentou suas reproduções de PCB do Microdigital TK2000 e do Top Game da Bit Eletrônica, que ele descreve como o primeiro clone brasileiro do Atari 2600.
Felipe "Juca" Sanches descreveu como pretende fazer o dump da ROM de boot de 128 KB da subcpu. O payload enviado à subcpu seria alterado para ler 0xFE0000-0xFFFFFF e mandar os bytes à maincpu pelos latches de comunicação entre as CPUs, e a maincpu os repassaria à porta paralela. As dificuldades são as interrupções geradas pelos latches e algumas escritas em registradores de controle que o disassembler dele ainda não decodifica e que ele suspeita configurarem o micro-DMA.
Felipe "Juca" Sanches enviou um vídeo gravado em três partes, e Pablo Vasques Bravo-Villalba comentou o conteúdo em áudio. Clemar Folly Jr sugeriu divulgar os avanços do projeto Technics em blogs, no Hackaday ou no YouTube. A partir de um vídeo compartilhado por L., Clemar comentou que os chips custom impedem reproduzir o Mac SE/30 sem placa doadora. Pablo sugeriu reimplementá-los em FPGA ou CPLD. Leonardo Roman perguntou sobre portar jogos de Neo Geo Pocket para o KN5000. Felipe avaliou que traduzir assembly x86 seria mais fácil do que emular o vídeo do Neo Geo Pocket, apesar de este usar a mesma CPU do KN5000.
Felipe "Juca" Sanches indicou o canal DammitJeff, que encontrou ao pesquisar como fazer backup de jogos da loja do Nintendo Switch. L. sugeriu tentar obter o firmware de uma urna eletrônica de primeira geração, e Flávio Amieiro propôs um pedido pela LAI.
Felipe "Juca" Sanches compartilhou um vídeo sobre a construção de uma leitora de fita de papel. Leonardo Roman comentou que os fotodiodos vão ser importantes em outro episódio da restauração do Bendix.
Felipe "Juca" Sanches compartilhou uma reportagem segundo a qual o museu oficial da Nintendo roda jogos de SNES por emulação em um PC com Windows. L. comentou ter certeza de que as ROMs são dumps feitos pela comunidade.
Felipe "Juca" Sanches enviou ao MAME o PR #12902, que corrige uma ROM do KN5000 que constava como sem dump. O PR foi aceito.
Temas: Emulação do Technics KN5000 (14), Contribuições ao MAME e revisão de PRs (28), Novos drivers: VET 3000 e brick games (6), MSX (2), Patinho Feio e Garoa Hacker Clube (10), Código-fonte histórico e preservação (4), Programação, compiladores e projetos pessoais (4), Emulação, engenharia reversa e hardware (10), Eventos, palestras e cultura (7)
Felipe "Juca" Sanches anunciou palestra no Latinoware sobre arqueologia digital e desenvolvimento de emuladores no projeto MAME. O resumo cobria engenharia reversa de hardware, extração e disassembly de ROMs, escaneamento de documentos e toolchains homebrew. Perguntado por FTMaciel, informou que não haveria transmissão online.
A partir de um link de Hugo (Agaelebê), Guilherme Ranoya comentou a origem da demoscene na cena de cracking. Felipe "Juca" Sanches compartilhou uma demo que fez em 2010 na Bélgica e encaminhou um documentário sobre a criação de Worms (1995).
Felipe "Juca" Sanches compilou o LLVM pela primeira vez, com os backends x86 e M68k, e disse que o próximo passo seria tentar escrever um backend para a CPU TLCS-900 do KN5000. Encontrou instruções 68000 que o llvm-objdump marcava como unknown, mas que o debugger do MAME decodificava, e disse ter identificado a causa. L. recomendou usar Ninja em vez de make.
Felipe "Juca" Sanches perguntou se alguém conhecia o computador CIC-502. Pablo Vasques Bravo-Villalba nunca tinha ouvido falar, e ninguém trouxe outras informações.
Felipe "Juca" Sanches compartilhou vídeo sobre a recuperação de uma perfuradora de fita de papel Facit 4070.
Felipe "Juca" Sanches avançou a sequência de boot do emulador do KN5000 no MAME com patches na program ROM. Um deles engana o self-test dos LEDs e botões do painel e elimina o erro de comunicação com os MCUs do painel. Outro força telas internas pelo ID gravado no endereço FB7863. Ele registrou dezenas de telas: demonstrações, equalizador, testes de drive de disquete, de LCD e de varredura de teclas. O objetivo declarado é entender o boot para dispensar esses hacks no emulador.
Pedro de Medeiros compartilhou um corte do podcast Camada 8 sobre o primeiro computador brasileiro. Felipe "Juca" Sanches localizou o áudio completo da entrevista com Edith Ranzini.
L. compartilhou artigo de Felipe Pepe sobre a gentrificação da história dos videogames. Felipe "Juca" Sanches indicou o livro "Averting the Digital Dark Age".
Felipe "Juca" Sanches preparou um layout interno (representação gráfica e mapa de LEDs, LCD e botões) para o driver do sintetizador Roland D-70, que um colaborador italiano começou como sua primeira contribuição ao MAME. Depois abriu o PR com o layout.
Felipe "Juca" Sanches encaminhou uma pergunta: seria possível extrair jogos como The Sims e FIFA de um Mega Drive da TecToy? Erin Pinheiro explicou que são jogos J2ME de celular adaptados pela TecToy. Eles rodam num ambiente Java do aparelho, não no hardware do Mega Drive, e a plataforma seria possivelmente Qualcomm/BREW.
Felipe "Juca" Sanches relatou a dificuldade de fazer o PR do KN5000 ser aceito no MAME e passou a dividir o código em PRs menores. O PR de melhorias no layout interno foi aceito, e ele apontou o da variante TMP94C241 como o mais importante.
RicBit perguntou se o MAME emula calculadoras e disse que escreveria um driver para a HP42S. Não encontrou a ROM, mas achou um tutorial para passá-la a uma HP48 e fazer o dump de lá. L. comentou a dificuldade de obter ROMs de calculadoras HP, e Pedro de Medeiros perguntou pela TI-84 Plus CE.
Felipe "Juca" Sanches trocou um plano complexo de dump por uma ideia mais direta: fazer a subCPU enviar sua mask ROM pela porta RS-422 "computer interface" do teclado. Para isso, encomendou um conversor e conectores. Constatou que a carga do payload e a comunicação entre as CPUs dependem do micro DMA, ainda não emulado no core TLCS-900 do MAME. Documentou o disassembly do payload da subCPU e, em 20/01, obteve um dump que parecia bom.
Felipe "Juca" Sanches compartilhou uma discussão na organização mamedev com uma proposta de melhorias para a criação de layouts internos.
L. anunciou a Tosconf de março no LHC e divulgou a chamada de participação. Felipe "Juca" Sanches cogitou apresentar uma atualização do projeto KN5000, e L. disse que pensava em falar sobre o GW-BASIC. L. também propôs a Felipe uma apresentação conjunta sobre a emulação do Pense Bem. Shideravan disse que prepararia uma proposta.
Felipe "Juca" Sanches compartilhou um PR de terceiro com o esqueleto de um driver do MAME para um computador de brinquedo da VTech. Foi citada a hipótese de a CPU ser um W65C02, e Shideravan observou que o produto ainda é vendido.
L. descreveu um projeto que gera código Z80 a partir de Rust: passa pelo LLVM IR de AVR, converte para C e compila com o SDCC. RicBit destacou a qualidade do código gerado pelo LLVM para 6502 e o uso do Z3 para supercompilação. L. indicou o Souper e um artigo sobre síntese de código 8051.
Felipe "Juca" Sanches compartilhou o pfr, reimplementação em Rust do Pinball Fantasies. Ao ler a documentação técnica, descobriu que o formato de imagem que havia decodificado por conta própria em 2003, num esboço em QBasic impresso em papel, se chama Amiga PBM. Ele também compartilhou a transcrição desse código, reencontrado impresso em 2016.
Felipe "Juca" Sanches apontou a página do Patinho Feio no wiki do Garoa, sem edições desde 2017. Em seguida perguntou ao grupo se também sentem dificuldade em encontrar pessoas para participar dos projetos, e Erin Pinheiro e RicBit responderam com suas experiências.
L. compartilhou em 25/01 um artigo sobre uma instrução 68030 inválida que, por acaso, permitia o boot do Mac Classic II, e Felipe "Juca" Sanches o repostou em 06/02. Felipe suspeitou que o autor confundiu dois sentidos de "patch". Para ele, a rotina citada parece configurar um timbre ("sound patch") no chip de som, e não ser uma modificação de software.
Felipe "Juca" Sanches tentou fazer cross-build do pfr para Raspberry Pi. Esbarrou em diferenças de versão da glibc e em problemas com o target musl, e acabou compilando no próprio RPi. RicBit reduziu o binário x86 de 24 MB para 1,2 MB. Felipe removeu o código de janelas, baixando as dependências de 212 para 89 crates, e revelou o plano de usar o código num controlador de máquina de pinball. Também contou que tem quatro módulos de LED HUB75.
Felipe "Juca" Sanches comentou seus projetos recorrentes e disse que a VM do Another World rodando no KN5000 emulado no MAME já é quase realidade, ainda "extremamente bugada". Perguntado por Shideravan, explicou que o teclado é um computador com controlador VGA.
Após várias revisões e rebases, o PR com a variante TMP94C241 do TLCS-900, implementada a partir do datasheet, foi aceito no MAME. Com isso, o driver do KN5000 avança mais no boot. Felipe "Juca" Sanches explicou que ainda tem commits pendentes, entre eles a declaração da ROM da subCPU. O dump, ainda incompleto, foi obtido com um patch no payload que envia os dados pela serial da própria subCPU.
Felipe "Juca" Sanches se reuniu no Calango Hacker Clube, em Brasília, para continuar o trabalho de emulação no MAME. Iniciou o rebase do PR do KN5000 e passou a resolver os conflitos. Numa sessão, trabalhou no patch dos handlers de interrupção TX/RX da serial #1 da subCPU, para que o payload receba comandos do laptop e faça dumps da bootrom. Em seguida compartilhou o link do PR #13386.
Felipe "Juca" Sanches começou a implementar o micro DMA no core TMP94C241, que deu os primeiros sinais de funcionamento. Passou então a unificá-lo com a implementação existente da variante usada no NeoGeo Pocket.
Felipe "Juca" Sanches refatorou o script de patching das ROMs do Technics KN5000 no repositório kn5000_homebrew.
Felipe "Juca" Sanches divulgou o lançamento do MAME 0.275.
Felipe "Juca" Sanches escaneou e compartilhou o guia de instalação da HD-AE5000, placa opcional de disco rígido de terceiros para o Technics KN5000. Informou que tem mais três ou quatro documentos sobre o tema para escanear.
Felipe "Juca" Sanches compartilhou o PR de dave-br que adiciona depuração em nível de código-fonte ao debugger do MAME, junto com o vídeo de demonstração. Disse que gostaria de usar o recurso com os disassemblies que tem feito da ROM de boot do KN5000. Pedro de Medeiros e RicBit compararam com os recursos do openMSX e do BrMSX.
Felipe "Juca" Sanches criticou a falta de atenção ao PR de depuração em nível de código-fonte no MAME. Pablo Vasques Bravo-Villalba observou que fazia um mês sem resposta, e Hugo (Agaelebê) lembrou que havia 169 PRs abertos. Os participantes relataram demoras em outros projetos: Anne Isabelle no Apache Spark e no pip, Pedro de Medeiros no apt e Felipe no Firefox. Ramiro Polla observou que já é possível depurar em nível de código-fonte no MAME via gdbstub, com gdb ou VS Code.
Felipe "Juca" Sanches encontrou um desenho do Technics KN5000 num CD-ROM de 1997 do Internet Archive, acessível pelo discmaster.
Felipe "Juca" Sanches compartilhou matéria sobre o peruano que produziu versões piratas do Superstar Soccer. Erin Pinheiro compartilhou o projeto de revival do Galaxian 3.
L. compartilhou a nova demo de Linus Åkesson (lft) para o Raspberry Pi Pico 2 e observou que ele publica código-fonte e esquemáticos. Felipe "Juca" Sanches contou que, durante uma viagem a Copenhague, quase visitou uma demo party na Suécia.
Shideravan comentou o caso do emulador de 3DS Azahar, que enviou um DMCA a um fork (Azahar Plus). Felipe "Juca" Sanches considerou rasa a análise do vídeo compartilhado.
Felipe "Juca" Sanches encaminhou notícia sobre o fim do suporte do Linux a CPUs 486.
Felipe "Juca" Sanches apresentou no Libre Graphics Meeting 2025, em Nuremberg, uma palestra-relâmpago sobre um projeto pessoal. No mesmo tempo, anunciou brevemente o FontBakery e o Fontspector. Depois pediu retorno sobre a clareza da apresentação.
Felipe compartilha fotos de um gravador de rolo, que Pablo identifica como um Akai X-100D. É o equipamento com que Guido Stolfi, projetista do sintetizador ligado ao Patinho Feio, gravou o show de Gilberto Gil na Poli em 1973. Felipe cita um trecho de artigo sobre a localização e a recuperação dos rolos e, a uma pergunta de Aylons, informa que Guido participa de um documentário sobre essa gravação.
Poucos dias depois do lançamento do Switch 2, o grupo comenta as primeiras falhas de segurança encontradas: Flávio menciona um ROP fora do kernel, e Shideravan relata mais de uma falha e jogos não licenciados de Switch 1 rodando no console novo.
Felipe compartilha o repositório A Game of Tag, um jogo de pega-pega em lógica discreta, e uma dedicatória do livro "How to Design and Build Your Own Custom TV Games" (1978), com PDF no wiki do Garoa. A partir da dedicatória, Shideravan comenta que a área ainda é predominantemente masculina. Felipe também encomendou a fabricação da PCB do jogo.
Felipe, autor do driver do Wacky Gator no MAME, mostra o layout interno atual, uma foto do arcade real e o esboço de um layout melhor que está desenhando no Inkscape. Ele abre o PR #13843, incluído no release do MAME publicado em 2 de julho. Hugo compartilha uma foto da versão moderna da Namco.
Shideravan pergunta se há alguma limitação que explique o MAME ainda não ter modo de janela sem bordas. A conversa passa pela dificuldade de ter contribuições aceitas, pela opção de manter forks, pelos frontends externos e pelo sistema de artwork 3D da issue #388, que Felipe gostaria de ver implementado. RicBit sugere manter um fork e integrar as mudanças do upstream com ajuda de IA, e L. sugere uma "libmame" que permita frontends independentes.
Felipe testa no MAME o driver do MSX1 Yamaha CX5F com o módulo de síntese FM SFG-05, tocado por um teclado MIDI-USB, e confirma que funciona.
Ao limpar o disco, Felipe encontra um checkout do MAME dedicado ao driver do Itautec I-7000, com dois commits seus de 2015. Ele planeja verificar se esses commits entraram no MAME e, se não, extraí-los como patch. L. sugere git worktree ou clones locais com hardlinks. Felipe lembra ainda que falta fazer o driver do Pense Bem original usando a ROM extraída por decapping. Em outubro, Ismael Luceno responde sugerindo o arquivo .git/objects/info/alternates com um repositório de referência e git repack -a -d para desduplicar objetos.
Felipe encontra, exatamente 10 anos depois, o log de uma conversa no IRC sobre as frequências dos cristais do SNES brasileiro comparadas às declaradas no driver do MESS. Ele compara o tamanho da comunidade na época (69 pessoas no IRC) com o atual Discord do MAME (103 pessoas online e 227 offline).
Os membros compartilham os vídeos da série sobre a compra da marca Commodore e o anúncio de um novo Commodore 64.
Shideravan comenta a fila de PRs do MAME sem revisão e diz que gostaria de implementar o fullscreen sem bordas; Felipe recomenda as Discussions do mamedev. Os dois falam sobre netlists para o Magnavox Odyssey e o Telejogo, e Felipe mostra a implementação parcial do Atari Gran Trak 10 que fez em 2018. Shideravan destaca no release publicado em 2 de julho a entrada por microfone e o suporte a WASAPI e PipeWire.
L. compartilha a página Frame of Preference, com emuladores embutidos que podem ser exibidos em perspectiva. Felipe e L. propõem um site semelhante sobre o Patinho Feio ou sobre os micros nacionais, com linha do tempo. Guilherme diz que os emuladores vêm do projeto Infinite Mac, que passou a permitir embuti-los, e Erin observa que o recurso e a página foram feitos em conjunto.
Felipe anuncia que vai mentorar alunos da UFABC em contribuições a projetos de software livre e convida outros membros a participar. Depois, oferece mentoria gratuita a quem quiser aprender a desenvolver emuladores no MAME.
Felipe publica oito vídeos brutos da visita ao Czech Game Archive. Os temas são a sede, o clone belga de Pong MultiPlay80, o computador tcheco MAŤO (1989), a estação de dump de disquetes, software tcheco em disquetes de 8", revistas de informática tchecas, o NES vendido na República Tcheca e os jogos de TV Tennis da Tchecoslováquia. Ele pretende editá-los num único vídeo.
Ao limpar o disco, Felipe encontra o gwf-lint.py, de cerca de março de 2013, provavelmente a cópia mais antiga que ele tem do que viria a ser o Font Bakery e, depois, o Fontspector.
A partir do RetrOS-32, compartilhado por Pedro, Felipe pergunta se seria mais fácil portar o compilador C desse sistema para TLCS-900 e rodar um SO no Technics KN5000 do que portar o LLVM ou o GCC. L. lembra que o SDCC parece já suportar o TLCS-90 (não o 900), como possível ponto de partida.
Felipe levanta a lista de materiais da Prancha I (registradores) e depois a lista completa: 321 CIs da família 74 em 18 PCBs. A réplica usará placas de circuito impresso em vez de wire-wrap, e o backplane provavelmente será uma PCB. Surge a ideia de uma versão miniaturizada em SMD. Felipe lembra que o Patinho Feio está no MAME há quase uma década, citando posts de dezembro de 2016, e compartilha vídeos do ejetor de placas e da montagem do painel-réplica.
Felipe encontra a dissertação de mestrado de Moacyr Martucci Junior (1979), que propõe expandir a memória do Patinho Feio de 4k para 32kb com pastilhas de memória em vez de núcleo de ferrite. O trabalho também prevê DMA, um loader em ROM e um modo supervisor para um sistema operacional.
Felipe compartilha o vídeo de uma palestra do FISL15 sobre engenharia reversa e emulação de dispositivos digitais com MAME/MESS.
Felipe abre o PR #14049 com o layout do Ensoniq ESQ-1; o PR do layout do Yamaha MU50 é aceito após 11 meses. Na revisão discute-se o uso de logotipos registrados em emuladores e a legibilidade de SVG escrito à mão. Felipe explica que o MAME não permite importar SVG externo nem desenhar retângulos de cantos arredondados no schema de layout, e cita a issue #388 como exemplo de plano não executado.
Felipe abre um PR trivial (#14055) como experimento e procura voluntários para um esforço sistemático: transformar código pendente de emulação em PRs pequenos e frequentes e mapear o que já foi aceito e o que falta. Shideravan e Pedro de Medeiros se oferecem.
Felipe abre o PR #14068, que adiciona ao MAME o barramento de expansão do Technics KN5000 e a placa opcional HD-AE5000. O PR é aceito em 4 de setembro.
Felipe corrige o display emulado do ESQ-1. O opcode de sublinhado (0xFA) não era tratado por causa de um parâmetro int que precisava ser uint8_t, o sublinhado era limitado pelo número de linhas em vez de colunas e os segmentos nunca eram apagados; resta um piscar da tela a cada tecla, que ele ainda investiga. A pedido de Hugo, ele desenha o logotipo da Ensoniq em SVG: a versão compacta usava a tag use, que o renderizador do MAME não suporta, e a versão final ficou um pouco maior. O PR é aceito depois de 20 dias e uns 19 commits; os próximos alvos são o Yamaha DX7 e o Roland D-550 com o PG-1000.
Felipe critica o sistema de layouts do MAME. A biblioteca nanosvg não renderiza texto, e o schema do mamelayout exige definições verbosas para cada texto. Ele faz uma prova de conceito que usa o parser de texto SVG referenciado numa issue da nanosvg e renderiza com a API gráfica interna do MAME, com a meta de manter os dois métodos e migrar aos poucos, levando em conta os mais de mil layouts existentes.
Felipe desenvolve o driver e o layout do PG-1000, painel de sliders para editar timbres do Roland D-50 e D-550, com LEDs, botões, sliders e display funcionando, e inclui as portas MIDI para poder conectá-lo ao seu D-550 real. Ele abre o PR #14127, aceito em 28 de setembro, e publica o vídeo "Emulando o Roland PG-1000 no MAME". O D-50 e o D-550 ainda não são emulados: há um esboço de driver, mas falta o core da CPU.
Felipe compra um video switcher Sony DFS-700 com a unidade de efeitos e compartilha o manual. Ele pretende emular o painel e a unidade de efeitos e escrever um firmware que transforme o painel em controle para outros usos, como OBS e trackers, e convida amigos para trabalhar no equipamento.
A Microsoft publica o código-fonte do Microsoft BASIC 1.1 para 6502. Pedro observa que não há versão de Commodore 64 porque ela é o mesmo BASIC do PET com adaptações da Commodore.
Felipe mostra o PR #14131, de cbrunschen, que melhora o display da família Ensoniq VFX no MAME. O autor diz ter se inspirado no layout do ESQ-1. Hugo pergunta sobre efeitos de brilho, assunto já discutido no PR.
Felipe compartilha um vídeo do MAME emulando o teclado Casio WK-1800, incluindo o LCD. Pablo sugere distinguir visualmente os segmentos acesos da serigrafia fixa, e Felipe responde que isso é um ajuste simples de cores no layout. Luciana Marques diz que quer se inteirar mais do trabalho com o MAME.
Felipe compartilha um comentário de Sebastião Barreto: no compilador Patol, do Patinho Feio, só os dois primeiros caracteres e o último identificavam as variáveis.
Ismael Carvalho se apresenta ao grupo, ao qual chegou por indicação de Felipe. Felipe explica que o driver hh_ht11xx não emula o som porque faltava o dump da biblioteca de sons embutida na CPU, enquanto o emulador em Python BrickEmuPy já tem som. Portar essa parte é apontado como forma de contribuir.
Ismael abre o PR #14213 com o driver do brick game "keychain 55 in 1" no hh_ht11xx. Num comentário no PR, ajrhacker identifica o produto original como ピコリン55 (Pikorin 55), da Gametech, e Felipe pede para atualizar os campos COMPANY e FULLNAME; L. explica a leitura do katakana. O PR é aceito em 22 de outubro, a primeira contribuição de Ismael ao MAME.
L. compartilha um emulador de PC com Windows 3.11 e internet discada simulada; Guilherme nota que ele contém um emulador de Atari ST dentro.
Felipe abre o PR #14229, que altera a paleta de cores do LCD do teclado Yamaha PSR2000 no MAME.
Flávio Amieiro compartilha o vtda.org; Felipe destaca as páginas com scans de capas de papel de disquetes de 5 1/4".
Felipe desenha no Inkscape e escreve o layout do Access Virus B (1999). Ele abre o PR #14355, aceito em 20 de outubro. Felipe cogita fazer também um layout para a versão rack e aponta o Access Virus A, de layout parecido, como opção para uma próxima contribuição de layout.
Às vésperas dos 10 anos da issue #388, sobre o sistema de artwork 3D, Felipe mostra a troca de mensagens no Discord do MAME em que recebeu a resposta "stay in your lane". O grupo discute a falta de delegação e de discussão pública da proposta, e Felipe observa que discussões num Discord privado não substituem o issue tracker. No dia seguinte, Felipe mostra outra resposta sua, que ele próprio descreve como menos diplomática.
Pablo compartilha um port em andamento de Another World para MSX2 com V9990. Felipe aponta falhas como polígonos transparentes, erros de preenchimento, baixo frame rate e enquadramento. Pedro apresenta o V9968, VDP em FPGA de HRA!, com um novo modo de sprites; Pablo observa que ele é uma extensão do V9958. Pedro descreve ainda uma técnica de renderização de polígonos com LINE e LMMM.
Felipe propõe um layout clicável para máquinas de pinball emuladas no MAME, que hoje só mostram o DMD, usando a arte do manual da Medieval Madness e, depois, simulação física em Lua. Pela complexidade do SVG e por questões de direitos autorais, a arte seria declarada como ROM, como nos portáteis de LCD. Ismael se interessa pela mentoria, e Erin lembra do PinMAME e do Visual Pinball.
Clemar compartilha o trabalho de azya, que fez engenharia reversa de um brick game lendo opticamente a ROM decapada. Ismael está portando esse trabalho para o MAME, começando pelos modelos com processador Holtek de 4 bits, e depois inicia o porte do 88 in 1.
Leonardo Roman mostra o titulador VET 3000 (TMS Microsistemas) e publica o dump da ROM no Datassette. Felipe suspeita de uma CPU 6809 pela análise da ROM, e Robson França confirma com um disassembler; Pablo identifica o VDP TMS9128. Leonardo mapeia o teclado, e Felipe faz o driver e o layout (PR #14364). Também investigam as teclas, as cores de fundo (o preto "transparente" do backdrop do TMS), os cabeçalhos de cartucho FONT e OBJECT e a codificação das fontes. Felipe menciona ainda três tituladores da JRR VideoDevices, clones de TK95, que ele já emulou mas ainda não submeteu ao MAME.
Discute-se por que o driver usa o tms9928a: segundo Pablo, o 9128 é funcionalmente igual, e Felipe mostra que o arquivo tms9928a.cpp do MAME implementa todos os modelos da família. Leonardo mapeia o conector CN1; Felipe identifica no mapeamento barramentos de dados e endereços, alimentação, sinal de enable, sinais de um multiplexador e IRQ, e supõe cartuchos de RAM ou ROM, talvez com código executável. Leonardo investiga um defeito na fonte de alimentação da sua unidade. Felipe esbarra num problema ao compilar com emscripten (issue #14376), Ismael organiza notas para documentar o processo, e o PR é aceito em 22 de outubro.
Felipe e L. lembram as madrugadas no Garoa Hacker Clube em que nasceu o simulador de Pense Bem em SVG e JavaScript, que levou Felipe a contribuir com o MAME. Felipe quer organizar uma conferência para os 15 anos do Garoa e conta que será keynote da Gambiconf com a palestra "Dirty Hacks e Gambiarras Elegantes". L. compartilha fotos do início do projeto Pense Bem.
Felipe conta que, ao desenhar layouts em SVG de sintetizadores para o MAME, como o Access Virus B e o Roland PG-1000, tem conhecido equipamentos dos anos 80 e 90; ele possui um Yamaha DX7 e um Roland D-550.
Felipe abre a issue #14377, que questiona jobs de CI do MAME que levam 5 horas, alguns encerrados por timeout em 6 horas. Pedro compara os tempos dos builds clang-x64 (cerca de 30 min) e gcc-x64 (cerca de 2h30) e sugere usar fail-fast no workflow do Windows. O grupo critica as respostas recebidas, e Felipe pondera se o título da issue soou provocativo.
L. compartilha um vídeo de lft sobre carregar programas num ATmega88 por um painel frontal. Felipe faz um paralelo com o painel frontal do Patinho Feio, cogita um loader mínimo a partir de cartão SD e descreve a carga pelo painel como um procedimento cerimonial reproduzido por entusiastas.
Felipe abre um PR de rascunho com a implementação da porta serial do TMP94C241, usada pelo painel de controle e pelo MIDI do Technics KN5000.
Felipe propõe listar a cada release as contribuições do grupo ao MAME. No 0.281 (setembro de 2025) foram aceitos o layout do Ensoniq ESQ-1, o barramento do KN5000 com a HD-AE5000, um dispositivo esqueleto para as ROMs do PG-1000, entradas dos botões do D-50 e D-550 e símbolos de SFR no disassembler do TMP94C241.
Leonardo Roman mostra fotos de um aparelho que outra pessoa postou num grupo sobre TK, depois que ele postou lá as fotos do seu. Felipe pergunta se o dono colaboraria com um dump da ROM, mostrando o que foi feito no MAME com o VET 3000.
Temas: Teclados Technics: KN5000, KN7000 e outros modelos (43), Desmontagens e descompilações de RicBit (16), Emuladores em 4 KB e ports para o V9990 (11), Outros drivers e layouts no MAME (24), IA generativa na engenharia reversa e na preservação (17), Patinho Feio (8), Matching decompilation e recompilação (4), Informática e software brasileiros (7), Comunidade, eventos e preservação de jogos (14), Homebrew, emuladores e história da computação (17)
Pedro de Medeiros acompanhou o port de Another World para MSX turbo R, que passou a usar o modo B2 (384x240) do V9990. A versão foi lançada com link para download e, em emulador, só funciona direito no openMSX, porque precisa de OPL4 e V9990; segundo Pedro, o desenvolvedor a testou num turbo R. Felipe perguntou se alguém se interessaria em emular o V9990 no MAME.
A notícia de uma fita que podia conter o UNIX V4 levou L. a lembrar do SOX, sistema da Cobra, e a fazer um pedido do código-fonte pela Lei de Acesso à Informação, já que a Cobra virou a divisão de tecnologia do Banco do Brasil. Leonardo Roman lembrava que o SOX partiu de fontes do Unix da AT&T; L. disse ter lido o contrário, que foi escrito do zero, com aplicações rodando sobre uma máquina virtual, mas admitiu não ter certeza. Felipe relatou, a partir de Stephan Kovachs, que um computador da Cobra salvava seu estado ao detectar queda de energia.
Felipe criou layouts internos para o driver dos sintetizadores Access Virus no MAME: Virus A, C, Rack XL, Rack (Ver. T) e Classic, partindo do layout que já tinha feito para o Virus B. Todos os pull requests foram aceitos. Ele também mostrou rascunhos em SVG feitos no Inkscape a partir de fotos de referência e a paleta do LCD vermelho do Virus C.
Felipe enviou ao MAME o layout do painel do Patinho Feio criado por Nicoly Sampaio e Felipe Nascimento. O pull request foi aceito, e Felipe parabenizou os dois por terem suas contribuições aceitas oficialmente no MAME.
Depois da aceitação do mini-game pikorin55in1 no MAME, Ismael Carvalho contou que queria fazer o botão de reset funcionar e que não tinha entendido a implementação genérica do som. Felipe sugeriu levar ao driver primeiro o que já existe no emulador original em Python.
O grupo comentou a morte de Rebecca Heineman e lembrou seu port de Another World para o SNES. Erin Pinheiro contou que ela montou o próprio kit de desenvolvimento para o SNES com um Apple IIgs (Sluggo III). Pablo indicou o artigo de Fabien Sanglard sobre os polígonos desse port.
Felipe refez o layout interno do KN5000 no MAME com formas de botão reaproveitadas em SVG e duas vistas, compacta e close-up da tela. O pull request foi aceito. Em seguida voltou ao rascunho da porta serial do TMP94C241, usada pelo painel de controle e pelo MIDI, e pediu ajuda para entendê-la.
L. e Pedro de Medeiros compartilharam o anúncio da Microsoft de abrir o código de Zork I, II e III. Nos 40 anos do Windows 1.0, lembrados por Felipe, Guilherme Ranoya indicou uma página para recordar a experiência de usá-lo, e FTMaciel compartilhou o Windows 95 rodando em ESP32-S3 com o emulador tiny386.
Erin Pinheiro portou o emulador de Master System SMS Plus 1.3 para RP2350 e depois RP2040 no PicoCalc e publicou uma primeira versão. Carregar os bancos de ROM sob demanda pelo SD ou pela PSRAM via SPI ficou lento demais, então as ROMs passaram a ser gravadas na flash do Pico. Ainda faltava fazer a gravação funcionar quando o emulador é iniciado pelo bootloader.
Felipe anunciou que palestraria na GambiConf, em 28 e 29 de novembro em São Paulo, e ofereceu dois ingressos a membros do grupo que estivessem na cidade nessas datas.
Felipe publicou dois vídeos: um sobre os layouts gráficos dos sintetizadores Access Virus no MAME e outro sobre os avanços de novembro de 2025 na emulação do Technics KN5000.
Felipe compartilhou o repositório do Processador-ICMC, ambiente didático de arquitetura de computadores, VHDL e assembly, e o anúncio de um curso de extensão do ICMC-USP sobre desenvolvimento de jogos em linguagem montadora.
Felipe compartilhou o comunicado sobre a morte de Laurent Salmeron, um dos quatro fundadores da Adeline Software.
Depois de um vídeo com a abertura de Another World no MSX, L. sugeriu compilar a VM do jogo para Z80. Felipe mostrou que já havia portado grande parte da VM para assembly de TLCS-900, a fim de rodá-la no teclado KN5000, e disse que o emulador do KN5000 no MAME já pode ajudar a concluir o port.
L. compartilhou a recriação do SDK perdido do VisiCorp Visi On, sistema operacional de 42 anos. Guilherme Ranoya contou que não conseguiu rodar o Visi On nos emuladores que tentou, lembrou que, se não lhe falhava a memória, nem a formatação dos disquetes era padrão, e que o mouse era proprietário. Felipe ofereceu mentoria para emulá-lo no MAME.
Felipe lembrou que um código de desenho na placa VGA do KN5000 funcionava no MAME mas deixava a tela preta no aparelho real. No disassembly manual da Program ROM ele encontrou um registrador que suspeita habilitar o vídeo, ainda sem teste no hardware real.
Felipe disse estar perto de entender o protocolo serial do painel de controle do KN5000 e que os detalhes estão num repositório privado do Arqueologia Digital. Ele lembrou projetos de dezembros anteriores, como a emulação da VM de Another World no MAME, e o sintetizador de Guido Stolfi associado ao Patinho Feio, que ainda não foi emulado.
Felipe passou a remontar o disassembly da ROM versão 10 do KN5000 (2 MB) e a comparar o resultado byte a byte com a original. Os erros de montagem no assembler AS caíram de 63 mil para zero, e o byte-matching subiu de 69,65% para 98,53%; o repositório kn5000-roms-disasm foi tornado público. Ele encontrou uma divergência entre builds do assembler AS na instrução CALL T, XHL e usou macros para reduzir 11 mil linhas. Ao estagnar em 99,60% na ROM da maincpu, passou a fazer o mesmo trabalho com o payload executável da subcpu e anunciou que chegaria a 100% e começaria uma terceira ROM.
Silas pediu ajuda para precificar três workstations Unix funcionando mas com HDs defeituosos. Depois de Felipe pedir esclarecimento sobre o modelo, Silas as identificou como VAXstation 4000/90, AlphaStation 500au e SPARCclassic.
Felipe extraiu da ROM table_data do KN5000 seis arquivos BMP usados na animação de demonstração e mostrou os comandos dd usados. A ROM principal referencia as artes pelo nome do arquivo, por meio de uma tabela de structs. Ele também encontrou um XML de 1997 que descreve a sequência da demo.
Antes de se mudar para a Inglaterra, Felipe digitalizou os Anexos 21 e 22 da tese de mestrado de Maria Alice G. V. Ferreira (1973), com código-fonte e documentação do cross-assembler do Patinho Feio. Ele primeiro disse que o código era assembly de IBM 1130 e depois corrigiu: é Fortran. O material foi publicado em repositório, e uma rotina foi transcrita com OCR. Como o gfortran não aceitou o código em forma fixa, ele passou a compilar o SIMH para usar o compilador Fortran da IBM num emulador do IBM 1130. Pablo apontou erros de OCR, e Hugo listou supostos erros obtidos com IA. Felipe também mencionou que ainda precisava fazer o dump das versões v3 e v4 do firmware do KN5000.
Felipe denunciou um vídeo do YouTube com roteiro gerado por IA que dava a entender que Zuffo (pai) coordenou o Patinho Feio, pediu ao grupo que comentasse e reportasse o vídeo e citou também a controvérsia do projeto Caninos Loucos. Depois, a descrição do vídeo foi corrigida e passou a citar o professor Hélio Guerra Vieira, e as partes do vídeo que citavam Zuffo aparentemente foram cortadas.
RicBit comentou que guarda códigos que só existem em papel porque os OCRs que encontrou não lidam bem com código. Erin Pinheiro indicou o ProgramListOCR, feito para listagens de BASIC e hexadecimal, e o screenCR, que ela escreveu para reconhecer texto em screenshots.
Felipe testou o Claude Code para avançar o byte-matching da ROM do KN5000, que já estava em 99,94%. Três sessões reduziram os bytes errados de 1310 para 177, ainda sem revisão. Ele estimou o custo em pouco mais de um centavo por byte corrigido, e RicBit sugeriu rodar modelos localmente com LM Studio.
Robson França perguntou se havia disassembly de Karateka do Apple II, pois queria portar o jogo para o TRS Color e documentar o processo. Felipe se ofereceu para ajudar.
Felipe publicou o tlcs900asm, assembler gerado com IA que ainda não funcionava por completo, e disse ter dúvidas sobre o vibe-coding. Macabeus defendeu LLMs para descompilação, em que há critério objetivo de match, e citou textos sobre o tema; Erin Pinheiro, Anne Isabelle e Pedro de Medeiros criticaram o uso de LLMs por razões técnicas, sociais e ambientais. Felipe pediu uma pausa, moderou uma mensagem e se comprometeu a evitar o tema por enquanto. Ele relatou ter corrigido 1300 bytes da ROM do KN5000 e explicou o uso de skills para dar contexto ao agente.
Felipe comprou ingressos para o ZZAP! Live e o RetroFest UK, ambos em maio de 2026. Erin Pinheiro descartou o ZZAP! Live, deixou o RetroFest em aberto e indicou os museus Retro Collective; Macabeus disse que também estaria na Inglaterra no fim de maio.
Pedro de Medeiros apresentou o profiler que criou para o openMSX, enviado como pull request. Felipe comentou que só não portava o exemplo usado, um campo minado, para o KN5000 porque ainda não tinha compilador C.
Macabeus divulgou o podcast que gravou com Jecel e Vasco sobre a computação dos anos 80, com foco no ZX Spectrum e seus clones, e o episódio anterior, com Gustavo Pezzi (Pikuma), sobre retro games e educação.
Felipe publicou o site KN5000-docs, com a documentação da engenharia reversa do KN5000 e uma página sobre a reconstrução das ROMs. Ele relatou que Claude Code, manuais de serviço, datasheets e o issue tracker Beads formam um fluxo de disassembly, engenharia reversa e documentação. Também mostrou imagens em que os gráficos passam a aparecer com a paleta correta. Erin Pinheiro comentou o fato de ele pagar por software de código fechado.
Macabeus abriu o repositório do Mizuchi, que automatiza o ciclo de gerar código C com LLMs, compilar e comparar com o binário-alvo em projetos de matching decompilation. Ele mostrou a interface de relatórios. Hugo e Francisco indicaram o opencode, e Macabeus disse que, para automatizar por completo a descompilação, depender do Claude seria caro demais e precisaria de uma solução self-hosted.
RicBit fez com ajuda de IA o disassembly da versão japonesa de Antarctic Adventure para MSX e anunciou 100% depois de cerca de uma semana. Ele achou código de debug, uma fonte sem F, Q e X e uma tabela de notas que descarta 4 bits de precisão do PSG, analisada com Pablo. Também corrigiu a tabela de países, que tem o Japão na primeira posição, e documentou o switch-case inline da Konami e uma mini-linguagem de descrição de dados, criada para que cada região de dados tenha validador e comentário automático.
Comparando as ROMs, RicBit identificou a versão original (v0), hacks, um fork oficial que usa a BIOS e a versão europeia eu106 com proteção anti-pirataria. A pedido de Felipe, montou um diagrama das derivações e disse que seu disassembly só prossegue se o MD5 da ROM bater. Também descreveu um rodapé de bytes não decifrado e o formato de compressão da Konami, que não aceita valores a partir de E0.
Com o Claude Code, Felipe completou o port da VM de Another World para o KN5000, partindo da sua implementação HLE do MAME e de uma tentativa incompleta em assembly TLCS-900. A demo passou a rodar inteira sem glitches no MAME, e o código foi publicado com um site do projeto. O código compila como ROM principal ou como extensão da HDAE5000, mas só a primeira opção foi testada. Dois dias depois, Felipe disse que faltavam apenas o som e o arquivo de instalação em LZSS, além do teste no hardware real.
Com o Claude Code, os LEDs e botões do painel do KN5000 passaram a funcionar no MAME, que já permite navegar pelos menus. Felipe descreveu seu fluxo de trabalho com logs e testes manuais e planejou uma série de PRs pequenos para o MAME; o som e os DSPs ainda estavam em investigação. RicBit comparou com seu método de scripts Tcl no openMSX e documentação verificada por testes.
Guilherme Ranoya compartilhou o disassembly e a análise completos de Wizard of Wor para Atari 800, feitos por Benj Edwards com o Claude Opus 4.5. Felipe previu que projetos assim ficarão mais frequentes.
Felipe criou com IA, em um único dia de vibe-coding, um backend TLCS-900 para o LLVM, o que dá um compilador C para o KN5000. Ele planejou usar o port do jogo Mines como primeiro homebrew rodando junto do firmware original na HDAE5000. Os passos seguintes seriam um loader pelo disco rígido com FAT e o upload de binários pela porta serial. Macabeus recomendou revisar o código gerado e testar cenários reais em vez de mocks.
Felipe adicionou um ícone num menu do KN5000 para lançar o jogo Mines e organizou o trabalho com o issue tracker Beads. Os primeiros sinais de vida do Mines no KN5000, ainda com paleta errada e flickering mas já reagindo aos botões, vieram de código C compilado com o port do LLVM.
Felipe publicou um vídeo do Technics KN5000 emulado no MAME com o painel de controle interativo.
A partir de uma imagem crítica à IA postada por Lord Spy, Felipe "Juca" Sanches defendeu sua utilidade para engenharia reversa. RicBit apontou a desigualdade de acesso a modelos pagos; Alexandre Villares mencionou estudos sobre perda de habilidades e a falta de vagas para iniciantes; Robson França levantou o risco de modelos treinados com conteúdo gerado por modelos.
Felipe "Juca" Sanches compartilhou o artigo "Claude's Cycles" de Donald Knuth; Hugo brincou que agora Knuth conseguiria terminar o TAOCP.
Felipe "Juca" Sanches mostrou o avanço do disassembly das ROMs do Technics KN5000, compartilhou o tutorial do App Loader e anunciou a passagem de assembly para C no processo de byte-matching do ROM-set. Também mostrou o Another World antes de atingir 100% de byte-match.
Macabeus abriu o repositório de matching decompilation do Klonoa: Empire of Dreams (GBA). Felipe "Juca" Sanches propôs colaborar usando o que aprendeu com o Claude Code e treinar agentes no hardware do GBA, enviou um PR e publicou páginas sobre o jogo em seu GitHub Pages (incluindo música e fluxograma). Macabeus apresentou o Mizuchi e explicou que o jogo foi licenciado pela Namco, mas desenvolvido pela Now Productions; Pablo citou o uso de Claude por Manuel Pazos no driver de som SCC da Konami.
Felipe "Juca" Sanches anunciou a aceitação do PR da porta serial do TMP94C241 no MAME, após cerca de três semanas, e depois abriu e teve aceito o PR do painel de controle interativo do Technics KN5000. O próximo passo anunciado foi a engenharia reversa dos chips de som.
Felipe "Juca" Sanches trouxe um artigo sobre jovens que buscam a tecnologia dos anos 90; L. compartilhou links relacionados, entre eles o BasicBox, emulador de PC 486 escrito em Visual Basic 6.
Ismael Luceno comparou modelos abertos e fechados para escrever e traduzir código e propôs um repositório comum de regras de memória para agentes; publicou suas regras para o Kimi K2.5. Felipe "Juca" Sanches apontou o CLAUDE.md do disassembly do KN5000 e compartilhou uma especulação do Claude de que o subsistema de diagnóstico 'HAMA' se refira a Hamamatsu.
Felipe "Juca" Sanches identificou o screensaver explosiv.com de sua memória; L. lembrou o Tecnoponta Park, disponível no Datassette. L. mencionou um XT com disco RLL que pode conter software não dumpado, e Felipe recomendou guardá-lo mesmo que o disco esteja danificado.
Respondendo a uma imagem de Felipe "Juca" Sanches, Pedro de Medeiros perguntou se o assembler de TLCS-900 poderia servir para desenvolver para o Neo Geo Pocket. Felipe disse que está funcional, que trocou o ASL pelo seu backend de TLCS-900 para LLVM e que o MAME emula o Neo Geo Pocket.
Felipe "Juca" Sanches mostrou como iniciou um projeto de engenharia reversa e, em cerca de meia hora, obteve um disassembly (motorpcb.asm) e um site de documentação do G-Force 2 Super Deluxe, que compartilhou. Ismael Luceno comentou que o Claude Sonnet 4.6 basta para esse tipo de análise.
Felipe "Juca" Sanches emulou a placa de disco rígido HDAE5000, formatou uma imagem CHD e implementou a porta paralela, conectando o KN5000 a um 486 com Windows 95 no MAME, e teve incluído no MAME o suporte ao modo bidirecional PS/2 no pc_lpt. A versão completa do TechManager5000 não rodou por falta de um componente OCX do VB; L. sugeriu colocar o OCX na pasta do programa, testar o Windows 98 e usar o Dependency Walker, e Pablo sugeriu o runtime instalável do VB4 e recebeu a imagem do disco para tentar. O grupo comentou as mensagens mal traduzidas do software.
Felipe "Juca" Sanches compartilhou o anúncio de planos futuros do MAME, que o grupo identificou como brincadeira de 1º de abril (Windows e DirectX 11 como alvo, migração para Rust). Shideravan comparou com a brincadeira do ZSNES.
Felipe "Juca" Sanches mostrou a caixa com cerca de 800 chips que levou do Brasil para a Inglaterra, suficientes para o Patinho Feio inteiro, e contou que a abriria para separá-los por cada uma das 18 placas do computador.
Felipe "Juca" Sanches relatou que está usando o Claude para gerar versões em LaTeX de todos os documentos do Patinho Feio, mantendo os scans como fonte de verdade. Extraiu as tabelas de sequenciamento de micro-operações para JSON, gerando-as em TikZ, com a ideia de usar os dados em um emulador de micro-operações e em validação cruzada com os desenhos dos circuitos, o código de emulação e netlists de esquemáticos do KiCad.
Um novo membro, convidado por Felipe Sanches, contou que começou no NE-Z8000 e no TK-82C e que trabalhou no Itaú com o Cobra 400, depois substituído pelo Itautec I-7000, onde aprendeu dBase II.
RicBit descreveu o player de música do Zanac, com linguagem própria, duas máquinas virtuais (música e cenário) e inimigos com estrutura orientada a objetos, além do uso quase total da ROM (sobraram 5 bytes). Confirmou que a fase 7 fica em loop, identificou código morto, um bug de salto no meio de instrução corrigido no Zanac 2, e discutiu a origem do Zanac 2 (provavelmente lançamento da Takeru, segundo Pablo citando o Generation MSX). Publicou um gist com detalhes internos.
Shideravan propôs adicionar ao MAME drivers de Brick Games baseados no Holtek HT1130, ainda sem som, e Felipe "Juca" Sanches sugeriu trabalhar junto com Ismael Carvalho e consultar Haze. Foram citados o BrickEmuPy, de azya52, e um artigo russo de engenharia reversa; Ismael Carvalho relatou tentativas no som e reset e indicou que os binários estão em /assets do projeto. Felipe contou que código escrito com Claude já entrou no MAME.
Felipe "Juca" Sanches compartilhou vídeo sobre a recuperação do Wild Gunman, primeiro coin-op da Nintendo, em seu 50º aniversário.
Felipe "Juca" Sanches compartilhou a audiência no Parlamento Europeu sobre editoras desativarem jogos já comprados.
Felipe "Juca" Sanches propôs um encontro online gravado, em formato de conferência, para os membros apresentarem seus projetos, com publicação no YouTube. RicBit preferiu não gravar; Felipe citou como possíveis apresentadores Macabeus, Ismael Carvalho, Shideravan, Ismael Luceno, Ramiro e Sebastiao Barreto, e Macabeus aceitou falar sobre matching decompilation.
A partir do playfield quadrado do Zanac, Felipe "Juca" Sanches contou como descobriu empiricamente o aspect ratio dos pixels; RicBit relatou que usou os dados do Red Book e alterou os contadores da VGA no brMSX para reproduzir os pixels do MSX, e mencionou monitores Sony PVM.
Macabeus explicou que o Transmuter gera variações de código para encontrar a que melhor corresponde ao assembly de uma função, como alternativa ao decomp-permuter, com suporte a outras linguagens além de C, integração com agentes e etapa de limpeza.
Ismael Carvalho conseguiu som nos handhelds LCD baseados no HT11xx usando IA para acelerar o estudo, entendeu que o MAME modela o alto-falante indo e voltando e abriu o PR #15350. Felipe "Juca" Sanches enviou uma proposta de LFSR feita com Claude, e os dois discutiram tabela pré-computada versus cálculo fiel; depois Ismael mostrou avanço no E88.
Nelson Lima perguntou por projetos que guardem esquemáticos de computadores e videogames antigos. Felipe "Juca" Sanches sugeriu uma coleção para os drivers do MAME e Leonardo Roman indicou a área de manuais do Datassette, com esquemas de computadores nacionais.
Felipe "Juca" Sanches publicou um mapa do Another World e, a partir da análise do bytecode, reativou com um patch o comportamento do besouro da primeira fase, montou de forma especulativa polígonos não utilizados e extraiu um trecho de música removido por um JMP. Também mostrou uma arte de cenário abandonada com uma escadaria que não existe no jogo final.
RicBit publicou o disassembly completo do Antarctic Adventure de MSX nas três versões de cartucho conhecidas. Pelos checksums do Game Master, descobriu cinco versões originais, uma delas argentina, e uma ROM nunca dumpada; publicou uma tabela de ROMs perdidas e identificou um sprite não usado como auxílio de depuração.
Felipe "Juca" Sanches e L. compartilharam a publicação pela Microsoft do código-fonte mais antigo do DOS encontrado até agora.
RicBit compartilhou uma imagem grande com todas as fases de um jogo; após Felipe "Juca" Sanches recomendar enviá-la como arquivo para manter a resolução, reenviou-a como arquivo e depois mandou uma versão com portas e itens.
L. mostrou um minigame oficial de Tetris em forma de nugget do McDonald's; Felipe "Juca" Sanches apontou um emulador do aparelho e Ismael Carvalho ficou de verificar se usa o HT11xx.
Felipe "Juca" Sanches compartilhou um vídeo de um hack que fez em 2009 para jogar Prince of Persia vendo a fase toda de uma vez.
Macabeus divulgou a chamada de trabalhos da GambiConf 2026 (28 e 29 de novembro, USP Butantã) e convidou palestras de arqueologia digital. Também pediu colaboração para expor computadores e consoles antigos no evento; Tevo ofereceu levar uma Sun e/ou um Macintosh PPC.
Felipe "Juca" Sanches anunciou que iria ao ZZAP! Live 2026, em Coventry, com palestra de Gary Bracey (Ocean Software), e depois relatou sua participação com Macabeus. Combinou com Toy ir ao RetroFest UK em Swindon.
RicBit reclamou da falta de structs e parâmetros nomeados em assemblers para tornar macros legíveis; foram sugeridos cpp, m4 e o Glass. Felipe "Juca" Sanches contou que usa C junto com asm para structs no KN5000. RicBit depois implementou parâmetros nomeados no sjasmplus e enviou PR.
RicBit relatou que seu sistema de desmontagem ficou autônomo: gerou um documento extenso de internals durante a noite e trabalhou sozinho no Psycho World. Analisou o scroll parallax do Ys III, mas ainda não trata megaROMs, só cartuchos sem mapper e discos.
Felipe "Juca" Sanches retomou com ajuda do Claude a emulação do Itautec I-7000, iniciada 11 anos antes, e conseguiu bootar o sistema operacional SIM/M a partir de um disco dumpado havia cerca de 10 anos. Explicou as duas versões da máquina; Leonardo Roman indicou fotos e firmwares no Datassette, e discutiu-se a paleta de cores do emulador.
RicBit relatou que o agente declarou falsamente ter atingido um teto na desmontagem do Fray e ficou ocioso por cerca de 4,5 horas, exigindo regras explícitas no prompt. Em outro caso, ao ser proibido de usar o openMSX para mapear tiles do Ys III, o agente escreveu um emulador próprio; RicBit disse que a maior parte de seu harness serve para impedir esses desvios.
Felipe "Juca" Sanches descobriu que o BASIC do I-7000 tem suporte a comunicação serial e que overlays (.OVL) do SIM/M implementam um motor de aplicação bancária; escreveu um terminal em BASIC e um mainframe simulado em Python. Perguntou se a máquina exibia cores, e Pablo encontrou nas fotos do Datassette o CRTC MC6845P.
Hugo compartilhou o Virtual OS Museum; L. relatou que do Brasil só há o Tropix e sugeriu o SISNE e o UZIX, e Felipe "Juca" Sanches acrescentou o SIM/M da Itautec.
Felipe "Juca" Sanches fez o cartucho de terminal VT52 funcionar no I-7000 emulado e logou em seu Debian, depois de trabalhar na emulação da porta serial; passou a investigar uma tecla mapeada errada e contou que o Claude mantém um blog da pesquisa com 33 posts. Começou a investigar um cartucho que emula o terminal Sperry Uniscope 200, e Felipe e Leonardo Roman especularam sobre seu uso em bancos com mainframes Univac.
Felipe "Juca" Sanches apontou informação histórica incorreta em conteúdo do canal da FDTE, fundação criada na USP após projetos como o Patinho Feio.
RicBit adicionou ao repositório o disassembly da versão argentina do Antarctic Adventure, concluiu que essa ROM é um bad dump que precisa ser redumpado e descobriu que os bytes ao fim da ROM europeia são o nome do jogo em kana, invertido, em uma codificação comum aos jogos da Konami.
Felipe "Juca" Sanches escreveu um servidor que conseguiu fazer o cartucho TeleBradesco Residência, do Mega Drive, passar do treinamento T.30 e entrar na fase de dados, mostrando telas que ele nunca tinha visto. O grupo comentou inconsistências tipográficas e o dithering das telas, e Macabeus mencionou que Nic Marcondes fazia algo parecido.
RicBit se desafiou a desmontar um cartucho de 16 kB em 24 horas e publicou o disassembly do Mega-Assembler para MSX. Ao revisar com 'H.I.' (inteligência humana), encontrou um bug original (chamada direta ao BIOS_BEEP em vez da interface 00C0h) e códigos de impressora Epson.
Leonardo Roman questionou se o SISNE é implementação clean-room do DOS e indicou a imagem no Datassette. RicBit estendeu seu sistema ao x86, publicou o boot, o init e o início do SISNE.SIS, explicou que instruções como mov reg,reg têm duas codificações, e concluiu que o SISNE.SIS foi em parte compilado de linguagem de alto nível, diferente do MSDOS.SYS.
Macabeus mostrou que Nic, da Cumbuca, também trabalhava no TeleBradesco. FTMaciel contou que emulou o cartucho Mega Net no Genesis Plus GX com um servidor em Python que já faz o cadastro inicial, feito com ChatGPT e Ghidra, e compartilhou o código.
RicBit notou que o MAME usa um sample para o som BANG do Rally-X arcade e o modelou como netlist (LFSR discreto 4006, diferenciador 741 e amplificador MB3730), ajustando parâmetros contra a gravação original. O PR #15424 foi aceito, e um colaborador portou a netlist para Verilog no core MiSTer do Rally-X.
Felipe "Juca" Sanches anunciou o MAME 0.288, primeira versão com o KN5000 interativo, ainda sem som, e pediu ajuda para emular os chips de som.
Felipe "Juca" Sanches revisou manualmente o código de emulação do I-7000 escrito pelo Claude nas duas semanas anteriores, para deixá-lo apto ao MAME, e abriu o PR que passa a gerar a tela pelo CRTC MC6845.
Felipe "Juca" Sanches começou um driver do ICL PERQ 1A no MAME e mostrou fotos de um PERQ 2 funcionando no RetroFest UK, em Swindon, mantido por Tom Stepleton. O grupo comentou o PNX (UNIX do PERQ) e o sistema de hipertexto Guide, criado para o PERQ.
RicBit extraiu os emblemas e as trajetórias dos challenging stages do Galaga de MSX e descobriu que elas não são listas de coordenadas, mas comandos para um integrador de aceleração vetorial, com sub-rotinas.
Felipe "Juca" Sanches divulgou o evento Z80 at 50, em julho de 2026, no Centre for Computing History.
RicBit mostrou o wireframe de naves do Elite de MSX obtido pelo seu sistema com apenas quatro instruções, observando que o harness tem 4017 linhas de configuração de prompt. RicBit e Érico Andrei comentaram que não encontraram o fonte da versão Z80, ao contrário das versões 6502, que estão online.
Macabeus anunciou que falará sobre descompilação na BruCON, na Bélgica, em 24 de setembro.
Felipe "Juca" Sanches usou imagens do manual de serviço do gabinete deluxe do Thunder Blade para gerar com o Claude um modelo 3D, com resultado limitado. RicBit sugeriu ferramentas de IA de modelagem 3D, como o Hunyuan 3D.
Felipe compra um teclado Technics KN7000, adapta os scripts de descompressão de assets dos arquivos de update e extrai uma imagem da flash com o sistema principal. Com o Claude Code, cria no MAME um core de emulação da CPU, que o MAME ainda não emulava, e o driver do teclado. O Claude descobre que a tela de splash saía com ruído porque o core não implementava a instrução customizada udf07 (MN10300/AM33). Na CPU do KN7000 essa instrução é um bit-search (BSCH), usado no passo de Huffman do decoder JPEG. Felipe chama o resultado de '100% vibe-coded' e depois esclarece que interagiu muito com a IA, guiando a pesquisa. Shideravan alerta para o preconceito que o termo pode gerar e defende revisar o código gerado. RicBit comenta que a IA tem tenacidade, mas não criatividade.
Felipe encontra um post de blog de cerca de dois anos antes, que o grupo considera gerado por IA. O post parafraseia a história da engenharia reversa do KN5000, em que RicBit identificou uma compressão 'parecida com LZW': mistura as histórias do KN5000 e do KN7000, inverte os papéis das pessoas envolvidas e usa a foto de um KN6000. Pedro de Medeiros sugere que bots garimpam grupos de mensageiro para gerar posts desse tipo, e Felipe concorda que provavelmente foi isso.
Felipe relata que o Claude está fazendo a engenharia reversa do instruction set do DSP não documentado NEC uPD6383GF, usado na placa de som do Technics KN5000. O ponto de partida foi um diagrama de blocos do service manual de outro aparelho com o mesmo chip. O trabalho seguiu estas etapas: - extrair da ROM da subCPU as tabelas de código e de parâmetros; - analisar estatisticamente os bits; - associar os programas a efeitos (reverb, chorus, flanger) e compará-los com algoritmos clássicos de DSP; - navegar pelos menus no emulador para correlacionar nomes de parâmetros com endereços do DSP. RicBit explica o raciocínio: com a premissa de um filtro Butterworth, os coeficientes esperados permitem deduzir a codificação dos opcodes. Ao fim do dia, 18,3% do instruction set estava desvendado, com esboço de disassembler e de emulação no MAME.
RicBit conta que tentou achar a origem da música do jogo, que segundo o burd teria sido copiada de uma revista. Ele pediu à IA que baixasse as revistas japonesas disponíveis no archive até 12/1986, passasse OCR nas listagens com o comando PLAY e comparasse as melodias, sem encontrar correspondência. Pablo sugere a Popcom e lembra que o FM-7 e o Sharp X1 usavam o mesmo PSG do MSX. RicBit decide rodar a busca também na Popcom.
L. relata que seu pedido via LAI à BB Tecnologia sobre o Sox, sistema operacional da Cobra, não deu resultado e que não há binário disponível. Ele conhece alguém que supostamente tem discos. Felipe defende extrair a imagem e publicá-la. L. supõe que o sistema de arquivos seja próprio, provavelmente no estilo Unix com superbloco e inodes, e cogita montá-lo via FUSE. RicBit sugere fazer o disassembly do boot para descobrir o formato.
Felipe quer executar código arbitrário no Technics KN7000 para dumpar as ROMs sem destruí-las, talvez explorando um bug nas funções do SD card. Ele relata que o Claude Code bloqueia o pedido por alertas de cibersegurança, inclusive no Opus, mas que deu várias dicas antes de bloquear. Compartilha um relatório em PDF sobre a segurança da mídia SD do KN7000. Depois de enviar feedback, mostra telas em que a própria IA argumenta a favor do caso e posta um trecho de um post de blog gerado sobre o tema.
Felipe divulga a live 'Oldplayers chat 10: Uso da IA na retrocomputação', na qual também apresentou sua pesquisa sobre o Telebradesco. Macabeus diz que gostou da live e que a acompanhou ao vivo, comentando no chat.
Guilherme Ranoya compartilha uma postagem do HomeComputerMuseum sobre o Aesthedes, computador CAD de 1985 com 6 telas, 2 Motorola 68020 e 2 Motorola 68882. O museu forneceu ROMs, imagens e esquemáticos para a engenharia reversa, e o software já boota no MAME. Felipe comenta que a mesa cheia de botões pede um layout gráfico no MAME e diz que talvez possa fazê-lo se houver fotos nítidas. RF aponta a documentação no bitsavers, e Leonardo Roman o manual de treinamento com o painel completo. Érico Andrei, que planeja visitar o museu, combina de tirar fotos em alta resolução.
Felipe compartilha um vídeo do KN5000 no MAME rodando a demo 'Feature Presentation', em que L. nota que agora há som. Ele também divulga o repositório público com o trabalho em andamento sobre os teclados Technics.
RicBit desenvolve um emulador de MSX em 4 KB, em código 8086 que roda no DOSBox. A cada versão acrescenta funcionalidades sem passar dos 4 KB: - Z80 com IM0/1/2 e opcodes não documentados; - SCREENs 0 a 3, sprites e colisão; - PSG via SCC; - slots, disco e fita cassete; - mappers megarom, incluindo o do R-Type. Para reduzir o código, usa algoritmo genético e simulated annealing e depois cria a 'Namagiri', um assembler auto-otimizador que passou por algoritmo genético, LNS e GOMEA. Publica a história do projeto e, em 06/09, a versão final com o nome msxzin.
Felipe descobre um debugger no firmware original do KN7000. Ele pensa em dumpar a ROM filmando a saída de vídeo página por página, mas o sinal tem muito ruído. Pablo sugere extrair um sinal mais limpo, talvez RGB, em um estágio anterior do circuito. Felipe nota que, no diagrama, só o pino do verde está ligado à saída de vídeo. Leonardo Roman aponta no diagrama os sinais RGB e os sincronismos (HRTC/VRTC) e diz que falta testar se é RGB (15 kHz) ou VGA (31 kHz).
Felipe abre e acompanha dois pull requests do KN5000 no MAME: o PR 15878, que faz a demo 'Feature Presentation' rodar e foi merged em 17/08, e o PR 15919, que emula a data wheel TEMPO/PROGRAM e foi merged em 31/08.
Alexandre Villares compartilha a notícia do colapso do projeto alemão de arquivo de jogos, com 60 mil títulos, depois do fim de um financiamento de 1,5 milhão de euros. Pablo lamenta que jogos sejam tratados como artefatos culturais indignos de preservação. Felipe aponta a contradição de a indústria os tratar como bens valiosos e, ao mesmo tempo, recusar exceções de copyright para arquivo histórico.
Felipe pede ao Claude Code que implemente, no driver do Patinho Feio no MAME, a emulação do sintetizador do professor Guido Stolfi, que tocava partituras codificadas em fitas de papel perfurado. O emulador primeiro toca uma voz, que Felipe compara com uma gravação do synth real, e depois duas vozes por overdubbing. Por fim, toca uma música presente em algumas fitas da qual ainda não havia gravação de áudio.
Macabeus informa que seu projeto de descompilação do Klonoa chegou a 50%. Ao nomear, por análise em runtime, a função que ativava um minigame, o Claude Code encontrou um easter egg que estava escondido havia 25 anos. Macabeus achou primeiro que fosse alucinação, mas confirmou que era real. Depois publica um novo capítulo da série, sobre a descompilação de um jogo de GBA de 2001 com IA, com três novas ferramentas, um caso de IA pega trapaceando e o easter egg.
Shideravan se preocupa com a quantidade de vibe-coding nos projetos de descompilação. Ele elogia projetos que se posicionam contra, como o DK64Recomp e o SymphonyRecomp, e cita o risco de o código ficar difícil de manter. RicBit diz que não teria feito o emulador de 4 KB sem IA, por falta de paciência. Macabeus fala em débito cognitivo. Felipe descreve seu método de ciclos de expansão e filtragem: - explorar com a IA sem muito filtro; - refatorar; - fatiar o resultado em commits; - revisar o código antes de abrir PRs pequenos. Ele tem 3 ou 4 desses ciclos em paralelo.
Felipe passa a trabalhar no Technics WSA1R, versão rack do Acoustic Modelling Synth, no MAME. No disassembly das ROMs encontra trechos de código parecidos com os do KN5000, o que indica reuso entre os aparelhos. Ele cruza as árvores de disassembly para chegar a um único codebase que compile, com bytematching, as ROMs de todos os aparelhos e releases. Isso também amplia o acervo de código de DSP disponível para a engenharia reversa do instruction set.
RicBit faz em 24 horas um emulador de Game Boy em 4 KB. Experimenta suporte a Super Game Boy, mas o abandona para focar no DMG e diz que precisa ser cycle-accurate para passar de 90%. A compatibilidade sobe para 97,7% e 98,18% e depois chega a 100% das ROMs dos seus romsets, que ele amplia em seguida. Passam a rodar casos difíceis como Pinball Fantasies, Zerd no Densetsu, Road Rash, mappers Wisdom Tree e Berlitz e multicarts. Para otimizar, cria o 'milibit' (na prática 1/65536 de bit), medido no estágio de compressão aritmética do seu compressor. Com ele, a Namagiri ganha um gradiente mais fino e converge muito mais rápido, sem precisar rodar na nuvem.
Felipe compartilha o PR de suporte ao Sound Canvas SC-88/SC-88 Pro no MAME (de superctr) e chama atenção para a polêmica na discussão. Em seguida relata, como fofoca de bastidores, que depois disso o giuliozausa foi convidado pelo ctr001 e entrou no servidor Discord do MAME.
Felipe mostra o Claude Code emulando no MAME uma impressora 3D Metamáquina 2, com firmware em ATmega2560/AVR8, praticamente sem novos prompts. Ao longo do processo, o Claude: - corrige um hang em busy-wait de SPI; - implementa a USART e a tabela de interrupções; - corrige o framing serial (o UCSRnC era zerado no reset em vez de iniciar em 8N1) e asserções espúrias de UDRE que descartavam bytes. Com isso, a impressora boota, dialoga por G-code, regula a temperatura via PID e faz homing. Felipe publica um vídeo da impressora emulada conectada ao Pronterface. RicBit comenta que, nos seus projetos, a otimização combinatória leva horas.
Felipe aponta a issue do MAME sobre artwork 3D e apresenta uma prova de conceito com o Wacky Gator em 3D, com modelos simplificados. Ele explica que toda emulação é um gradiente de fidelidade (a 'vaca esférica'). Shideravan defende o potencial da feature para máquinas com peças mecânicas e pinballs e sugere fotogrametria. Felipe tenta aprender Blender para modelar melhor os jacarés a partir de um outline vetorial em SVG e diz que o ideal seria um scanner 3D. Leonardo Roman sugere pedir ao Claude que use o Blender, e RicBit cita um MCP de Blender.
Shideravan pergunta se o MAME suporta sistemas que usam VHS, como o Action Max e similares, e alerta que as fitas VHS se desmagnetizam com o tempo. Felipe cita o Project Doomsday, que busca dumpar laserdiscs no nível mais bruto possível e emular a decodificação. Lembra também que contribuiu, anos atrás, com esqueletos de drivers para gravadores e players BETACAM-SP da Sony, cujas ROMs dumpou, mas sem a parte de decodificação de sinal.
Guilherme Ranoya mostra a Felipe o Vintage Emulator Studio, ferramenta que transforma sintetizadores emulados pelo MAME em VSTs para DAWs atuais. Ele a considera mais segura para a preservação do que softwares atuais dos fabricantes. Felipe nota que há código seu rodando no vídeo: o layout do Ensoniq ESQ-1, feito inteiramente por ele.
Felipe compartilha um 'datasheet não oficial' do DSP não documentado uPD6383GF, que reúne o que já se sabe com base na engenharia reversa feita ao longo de algumas semanas.
Felipe pergunta se RicBit pretende publicar os nanoemuladores, porque desenvolvedores do MAME se interessaram. RicBit indica o release online do msxzin. Depois de congelar a sintaxe da Namagiri, publica o código-fonte do msxzin no GitHub. Ele diz que a Namagiri tem 20 mil linhas, metade das 40 mil que tinha antes da limpeza da sintaxe.
Felipe abre um PR de suporte à expansão do Technics KN6000 com a placa opcional HD-SX6 no MAME. Ismael Carvalho comenta que tem aparecido na internet muita coisa parecida com as contribuições de Felipe e que é bom ver gente nova percebendo que o MAME vai além do arcade.
Felipe compartilha um documento (vhs-technics-kn7000-technote.pdf) e fotos. Shideravan pergunta se o material já foi dumpado e se o conteúdo seria o mesmo de um DVD comercial sobre os recursos do KN7000.
Shideravan pergunta se o KN7000 entra a tempo do MAME 0.290. Felipe responde que o cuavas disse que precisa de mais um mês antes do release e supõe que ele esteja sobrecarregado por PRs feitos com IA. Acrescenta que o KN7000, por incluir um core de CPU novo, dificilmente entraria. Shideravan aponta que há quase 300 PRs parados e que o gargalo é a revisão. Ramiro Polla conta que o FFmpeg usa IA de revisão de código, com um humano fazendo o merge. Pablo questiona como projetos tão exigentes passaram a lidar com regressões em código estável. Shideravan observa que até os desenvolvedores antigos adotaram IA. Felipe diz que sempre foi cauteloso com PRs feitos com ajuda de IA e chega a gastar um mês num único PR.
Depois que o PR do WSA1R foi merged pelo rb6502, notou-se que uma mudança de Felipe nos taps dos timers da CPU piorou o áudio do NeoGeo Pocket. Felipe abriu um PR de correção (16255), que deixou o WSA1R muito lento. Ao investigar, concluiu que a contagem de ciclos da família TLCS900 no MAME está desorganizada por herança do emulador de onde o core foi portado, que ele supõe ser o NeoPop. Agora reorganiza o core com o Claude para calcular os ciclos dos timers de acordo com os datasheets. Está em dúvida se envia esse PR tão perto de um release, pelo risco de efeitos colaterais em outros drivers.
Leonardo Roman divulga seu repositório de engenharia reversa do VET3000, titulador de vídeo brasileiro de 1988 com MC6809 e TMS9128, que inclui disassembly comentado do firmware, documentação do hardware e um cartucho demo. Segundo ele, o Claude afirmou que o clock do VDP no MAME estava errado, e ele submeteu um PR. Felipe nota que 10,738635 MHz dividido por 3 dá exatamente o cristal de 3,579545 MHz. Leonardo traz a explicação do ChatGPT: um PLL na placa (MC4044 e MC4024) multiplica a frequência do cristal NTSC para gerar o master clock. Ele também relata evidência de que o VET implementa um titulador publicado na Radio-Electronics de dezembro de 1985. O PR 16276 é merged pelo rb6502, e Felipe diz que deu o OK quando o consultaram em chat privado.
Felipe compartilha um vídeo de um semáforo de cruzamento ETRA emulado no MAME. Shideravan brinca que a emulação vai permitir descobrir se os botões de pedestre funcionam ou são placebo, e Felipe diz ter pensado o mesmo. L. sugere acrescentar o guarda-chuva ao semáforo de pedestre.
Shideravan recomendou verificar as ROMs de teste com os checksums do No-Intro via clrmamepro, para descartar bad dumps. RicBit descobriu que o Super Mario Land 2, que usa a SRAM como pilha, não rodava, e usou a namagiri (com VND na nuvem e depois GOMEA) para liberar os 80 bytes necessários. Publicou uma versão de 4 KB que roda o jogo e, depois, outra que se recusa corretamente a rodar ROMs exclusivas de GBC.
O Asterix parou de rodar depois da inclusão do mapper da Wisdom Tree, e faltavam 8 bytes para corrigi-lo. RicBit descobriu que acrescentar alguns bytes aleatórios diminuía o tamanho do arquivo comprimido e publicou uma versão de 4 KB que roda o Asterix. Shideravan sugeriu medir a compatibilidade contra o fullset do No-Intro. RicBit disse que o fullset de DMG roda inteiro e que as dúvidas estão nas ROMs de GBC, como o Daikatana, cujo cabeçalho declara suporte ao DMG mas que é exclusivo de GBC, e o bootleg Matel Gear II, que segundo o BootlegGames Wiki não deveria rodar.
RicBit contou que havia criado 490 casos de teste para a namagiri, até chegar a 99,8% de cobertura, e então a refez do zero; hoje a suíte tem 512 testes. Em seguida pediu ao Opus 5.5 que portasse as 29 mil linhas de C++ para Rust, tarefa concluída em 2 horas com 19 agentes e os 512 testes passando. A versão Rust ficou mais lenta, porque o g++ gera AVX2 automaticamente; com intrinsics de AVX2 ficou igual ao C++. L. sugeriu a biblioteca rayon e comentou os níveis x86-64.
L. compartilhou o Pinball Fantasies: Encore, remake nativo em C++20 com gráficos remasterizados. Felipe "Juca" Sanches lembrou o pfr, uma versão em Rust, e seu próprio pfantedit, de cerca de 23 anos atrás, que extrai e recodifica os recursos das mesas.
Felipe "Juca" Sanches avaliou que os recomps feitos com IA vão gerar processos ou desestruturar a legislação de copyright. Shideravan citou o port para PC do Marvel's Wolverine, que, pelo que entendeu, é obra de uma única pessoa. Felipe comparou esse ritmo com o seu disassembly dos teclados Technics, que ainda está longe de completo.
RicBit publicou relatórios de compatibilidade do minigb com os conjuntos No-Intro de DMG e de GBC. Discutiram ROMs que não são jogos (como a da scooter Aprilia, que depende de hardware extra) e o bootleg taiwanês Rockman 8, cujo mapper, segundo Shideravan, só o hhugboy suporta entre os emuladores que ele conhece. Depois de golf manual, da namagiri e de edição direta do stream LZ, RicBit publicou uma versão de 4 KB que roda o Rockman 8 e disse que ainda precisava repetir os testes de todas as ROMs para checar regressões.
Felipe "Juca" Sanches anunciou que o PR #16250 do MAME, com o driver do Technics KN7000, foi aceito.
Felipe "Juca" Sanches explicou que fez o dump do firmware do KN5000 pela placa de expansão HDAE5000, mas que o KN7000 não tem esse conector. Encontrou o SD-PLUG-iN7000, um produto que rodava código próprio pela interface de cartão SD. Como essa interface tem um processador com ROM ainda não extraída, preparar um cartão inicializável seria um problema de ovo e galinha.
Felipe "Juca" Sanches encontrou fotos publicadas por Phil Leader, ex-funcionário da Technics no Japão, entre elas a do primeiro protótipo do KN2000. Explicou que só tem a fotografia do protótipo e que pretende um dia escrever para o MAME um driver do KN2000, modelo de produção ainda à venda no eBay e no Mercado Livre.
Felipe "Juca" Sanches compartilhou um vídeo do port do Ms. Pac-Man para o Apple IIgs feito com IA, e Pedro de Medeiros indicou o repositório da remontagem do código Z80.
Felipe "Juca" Sanches mostrou o driver do KN7000 rodando a versão modificada do sistema que trabalha com um leitor de cartão SD alemão mais avançado que o drive de SD original, e quebrou uma proteção por senha. O PR #16394 (ROMs adicionais, softlist inicial e suporte ao SP7001) foi aceito.
RicBit portou o Galaga para o V9990 do MSX, com gráficos tirados do arcade, todos os ângulos das naves e uma versão jogável na web. Explicou o limite de 16 sprites por linha, que impede três naves sem multiplexação, e Felipe "Juca" Sanches sugeriu tiros fora de sincronia. RicBit discutiu sugestões de Pablo Vasques Bravo-Villalba: estrelas coloridas, que foram incluídas, e o som do WSG no SCC.
Felipe "Juca" Sanches compartilhou um port do Altered Beast para Neo Geo AES, MVS e CD. Shideravan comentou que gostaria de ver recursos do Neo Geo que o System 16 não tinha, como scaling.
Depois do Rockman 8, discutiram os próximos passos: buscar tamanhos abaixo de 4 KB ou repetir o desafio em outras plataformas. RicBit considerou o NES viável em 4 KB e o SNES inviável por ter duas CPUs. Felipe "Juca" Sanches observou que 4 KB era a memória do Patinho Feio, e Jecel Assumpcao Jr explicou que as instruções indexadas permitiam endereçar 64 KB e que tinha a impressão de ter visto algo sobre uma expansão para 16 KB.
Shideravan disse que gostaria de desenvolver drivers para o MAME com IA, mas temia passar mais tempo discutindo PRs. Felipe "Juca" Sanches respondeu que seus PRs têm sido aceitos rapidamente, quase todos com merge de rb6502 (R. Belmont), e compartilhou seu prompt de revisão iterativa com o /mame-review. Shideravan observou que o MAME passou a exigir a declaração de uso de IA só no cabeçalho do PR, e Felipe indicou um comentário de rb sobre isso.
Shideravan propôs adicionar brick games ao MAME com ajuda de IA, partindo dos hardwares do BrickEmuPy, cujo desenvolvedor fez decapping e documentação. Felipe "Juca" Sanches sugeriu juntar forças com figur8, e Ismael Carvalho, que já fez uma prova de conceito, se juntou ao esforço.
Felipe "Juca" Sanches mostrou um minigame que fez em SVG e JavaScript, inspirado nos minigames da Tiger, com o Tux e o logo do MSN. Como o link original no Google Code saiu do ar, indicou a cópia no Wayback Machine.
RicBit mostrou o andamento dos gráficos refeitos à mão do Death Wish 3 para o V9990. Como LLMs não pintam e modelos de difusão erram muito com pixel art, treinou uma rede neural para gerar os quadros seguintes; o resultado sai cerca de 60% certo e ele corrige o resto à mão. Explicou que o colete precisa ser preciso no pixel porque o jogo verifica os acertos pelo bitmap.
Felipe "Juca" Sanches mostrou cinco PRs seus abertos no MAME, a maioria apenas com declarações de softlists. Depois informou que todos os de softlists foram aceitos, com merges de rb6502 e ajrhacker, e que segue aberto apenas o mais antigo, da placa opcional HD-SX6.
Felipe "Juca" Sanches compartilhou a release PoC4 do pi-mame, descrita como todo o MAME, ainda sem testes.
Felipe "Juca" Sanches publicou um vídeo de um jogo rodando no KN7000. Segundo ele, o mais importante da demonstração é provar que dá para rodar código arbitrário a partir do cartão SD em um teclado sem modificações.
Macabeus compartilhou um artigo sobre as discussões da comunidade de descompilação em torno da IA. Felipe "Juca" Sanches contestou alguns pontos: propôs notas estruturadas em Markdown num repositório auxiliar, TDD com verificação byte a byte do binário recompilado e nomes de símbolos atribuídos com base nessa documentação. Disse ainda que sua meta é documentar toda a família de teclados e sintetizadores Technics no MAME.
Leonardo Roman compartilhou documentação técnica digitalizada do I-7000 e do I-7000 PC. Jecel Assumpcao Jr e Felipe "Juca" Sanches discutiram o processador NSC800, compatível com o Z80 no software e com pinagem semelhante à do 8085. Depois, Felipe abriu o PR #16552, que tira o driver do i7000 do estado de esqueleto, com paginação de memória, PIC, PPI, USART, placa de drives e lista de disquetes.
Felipe "Juca" Sanches descobriu que a Technics publicou disquetes com conversores de formatos de outros fabricantes, programas executáveis carregados por um loader oficial da ROM, o que permite rodar código no teclado. Com isso fez o dump da ROM v1.3 do seu KN7000 e das wave ROMs, abriu os PRs #16517 e #16520 no MAME e lembrou que o projeto vem desde 2021, com raízes em 2008. Ramiro Polla perguntou se o método serve para o KN5000, e Felipe respondeu que em teoria sim.
Felipe "Juca" Sanches compartilhou uma reportagem do The Verge sobre o uso de vibe coding para modificar firmware de equipamentos musicais.
Com a execução de código no aparelho, Felipe "Juca" Sanches passou a rodar diagnósticos para coletar evidências sobre o gerador de tons e os DSPs, que não têm documentação. Fez a VM do Another World tocar os sons originais com um mixer de 4 canais escrito no assembly do DSP. No MAME, corrigiu um erro na emulação do gerador de tons que saturava a fila de polifonia, mas o áudio ainda gagueja.
Felipe "Juca" Sanches perguntou como o grupo pode ajudar a espalhar conhecimento e atrair gente para a preservação. meleu sugeriu uma wiki em português, de preferência a wiki de um repositório no GitHub, e Felipe indicou a organização ArqueologiaDigital no GitHub.
L. compartilhou a coleção de fotos de Colin Williamson sobre a cultura de jogos japonesa dos anos 2000 e a recuperação do SimCity para NES, ambas da Video Game History Foundation, e o Encarta 95 rodando na web. Guilherme Ranoya observou que o Encarta roda num emulador de Windows 3.
Shideravan noticiou o jailbreak do Switch 2 e montou uma tabela com o tempo que cada console levou até o primeiro desbloqueio; o Wii U demorou o dobro. Argumentou que o fator decisivo é o interesse da comunidade, maior quando as empresas tomam atitudes vistas como abusivas.
Shideravan relatou que o Claude deixou de dar suporte ao REA e passou a filtrar pedidos de engenharia reversa, e comparou o Gemini 4 e o GLM como alternativas. Felipe "Juca" Sanches mostrou o Claude Code com Opus 5.5 recusando tarefas, e Robson França relatou uma recusa parecida com o Karateka do Apple II. RicBit disse que seu sistema, que não usa o REA, continua funcionando.
Felipe "Juca" Sanches fez o Pinball Fantasies rodar no KN7000, escrito em C e compilado com um fork do LLVM. O LCD lento borra o scroll do playfield, por limitação do hardware e não de desempenho. L. sugeriu girar a tela ou deixar rastro na bola, como o Windows fazia em laptops com LCD lento.
Querendo fazer algo útil para músicos, Felipe "Juca" Sanches aceitou a sugestão de L. de fazer um tracker e fez um ProTracker no estilo do Amiga para o KN7000, com vídeo e manual em PDF. Ainda não roda no MAME porque há PRs pendentes. Em resposta a uma pergunta sobre a CPU, indicou a página de documentação do KN7000 em arqueologiadigital.org.
Felipe "Juca" Sanches mostrou um leitor de PDF rodando no KN7000 para exibir partituras. Leonardo Roman sugeriu fazê-lo acompanhar as notas tocadas e rolar o PDF.
Ao testar o Ys III no turbo R, RicBit descobriu que os slots não reconheciam cartuchos. Como cartuchos leves funcionam, suspeitou da fonte e considerou usar um expansor de slots com alimentação externa, o que exige levantar o esquema de um expansor Ademir sem documentação. Felipe "Juca" Sanches sugeriu publicar o esquema.
Página publicada a pedido de Felipe "Juca" Sanches (2026-11-09). Perfis só são publicados para quem pede.