Ano 1 · Ano 2 · Ano 3 · Ano 4 · Ano 5 · Ano 6 · Ano 7 · Ano 8 · Ano 9
Tópicos › Sexto ano › MSX, processadores e técnicas de vídeo
Discutiram-se técnicas de VDP e de screens do MSX, entre elas os efeitos em YJK e os experimentos de RicBit com dithering e conversão de imagens. O grupo debateu a fidelidade da emulação do SCC, o die do R800 e o uso de microcódigo, além de comparar o Z80 com o 6502. Também se falou das cores do TK2000 em PAL-M e do barramento do Game Boy.
Sexto ano: novembro de 2022 a outubro de 2023
A partir de uma demo de scroll de 1 pixel compartilhada por Pedro de Medeiros, RicBit explicou truques de temporização e de sprites do VDP. Ele também explicou os efeitos de sombra em screen 10-12, tema que surgiu do porte do Dank Tomb para MSX2 planejado por L., que também estuda técnicas de jogos no estilo Minecraft para a TI-84 CE. Foi compartilhada ainda uma emulação do TMS9918A em RP2040.
Pedro de Medeiros compartilhou uma demo de scroll de 1 pixel no MSX2. RicBit explicou que, com a temporização certa, é possível fazer blit na região ativa sem flicker, citou o Space Manbow, que divide a tela para dobrar os sprites, e disse que os sprites são lidos antes do início de cada linha, por isso não podem ser trocados no meio dela. Também confirmou que dá para esticar um sprite com interrupção de linha, efeito usado no Sword of Legend Lenam do Disc Station 9.
Pablo Vasques Bravo-Villalba compartilhou um projeto que emula o TMS9918A em um RP2040 com saída DVI. L. comentou a ideia de transformar seu RC2014 em um MSX.
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.
L. planeja portar o Dank Tomb para MSX2, com permissão do autor, e perguntou como fazer os efeitos de sombra e lanterna. RicBit explicou que em screen 12 os pixels são guardados em YJK e que em screen 10-12 basta deslocar o Y em 1 bit, como fez no demo TMNT de 1999.
RicBit identificou um bug no conversor do Jannone e abriu um pull request, escreveu um conversor novo e testou vários métodos de dithering. Ele publicou o código em um gist.
RicBit identificou um bug no conversor de telas do Jannone, que gera linhas e não espalha o erro na horizontal, e abriu um pull request. Em seguida escreveu um conversor do zero para screen 5 com paleta de MSX1 e comparou os resultados com o conversor do mifui. Pablo Vasques Bravo-Villalba participou das comparações.
RicBit testou vários métodos de dithering para converter imagens para screens do MSX: curva de Hilbert, Floyd-Steinberg, reescala por mediana e um método estocástico. Os resultados foram comparados em desenhos e fotos com Pablo Vasques Bravo-Villalba, Shideravan e L., e foram discutidos Voronoi e pontilhismo. Segundo RicBit, o fractal só leva vantagem em cartoon, e ele corrigiu um bug de arredondamento; o código foi publicado em um gist.
A partir de um projeto para criar um core do SCC com fotos do die, RicBit argumentou que as diferenças de som vêm do caminho analógico, que os emuladores ignoram.
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.
O grupo discutiu o die do R800 e o uso de microcódigo e debateu se o Z80 era inferior ao 6502. RicBit identificou como DDA uma técnica de desenho de linhas e verificou no MAME que o drive 1541 tem um 6502 completo.
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.
Guilherme Ranoya disse que o Z80 era inferior ao 6502, com base na sua experiência com MSX, Atari 800 e Apple II. RicBit argumentou que os exemplos citados eram do hardware de vídeo e não do processador. Segundo ele, o círculo do BASIC do MSX usa o algoritmo de Bresenham com espelhamento, que exige registradores que o 6502 não tem, e a SymbOS mostra uma interface gráfica multitarefa rodando em Z80. Guilherme acabou concordando que sua impressão se devia mais ao resto do hardware do que ao processador.
L. compartilhou um artigo sobre desenhar linhas sem Bresenham; RicBit identificou a técnica como DDA. Segundo RicBit, o artigo parece usar a CPU do drive para fazer divisões, e ele verificou no MAME que o Commodore 1541 tem um 6502 completo. Leonardo Roman citou o demo Freespin, que roda apenas no drive.
Foram comentados os debuggers do MAME e do openMSX. RicBit mostrou que o vgmrecorder do openMSX derivou do seu grabfm.tcl.
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.
Discutiram-se as cores do TK2000 em PAL-M; RicBit contou que mediu um Expert com osciloscópio e concluiu que não há uma cor exata. Também se perguntou por que o I/O do Game Boy não aparece no barramento do cartucho.
A partir de um tweet compartilhado por L., RicBit perguntou por que o I/O do Game Boy não aparece no barramento do cartucho, como acontece no MSX. Robson França perguntou se o I/O do Game Boy não é mapeado em memória. Depois de outro tweet trazido por L., RicBit supôs que, se não houver chip select no barramento, a separação seja feita por alta impedância, ao contrário do MSX, que tem uns quatro sinais de chip select.
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.
Felipe "Juca" Sanches divulgou a exposição do MSXSP na Canal 3 Expo 2023.
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).