Convertendo imagens em 16 cores no MSX – parte 1

Antiga janela gradeada em metal, com tinta descascando e pontos de ferrugem, faltam a maioria dos vidros e os que existem estão quebrados e refletem o céu. Ao fundo o interior do prédio em completa escuridão. Imagem convertida para apenas 16 cores com floid-steinberg aplicado.

Após escrever sobre como usar Python para converter imagens para o modo de 256 cores do MSX2s resolvi experimentar também a conversão para 16 cores. Motivo? Pura curiosidade de saber como a coisa é feita. Pesquisei um pouco, escrevi algumas linhas de código, obtive resultados interessantes e então fiquei algum tempo sem tocar no assunto.

Ao revisitar notei que não lembrava como tudo aquilo funcionava e decidi fazer duas coisas: (1) analisar o código para entender o que estava acontecendo e (2) escrever isto aqui para não precisar fazê-lo outra vez! 😀

E, como ficou maior do que eu esperava, resolvi separar em duas partes com esta primeira contendo um pouco de teoria e os passos necessários para a conversão da imagem em si…

Continuar lendo

Convertendo imagens para MSX

imagens-msx-1_abertura

Isto aqui é uma sequência indireta da publicação sobre criação de imagens em Python através da biblioteca Pillow. Mas desta vez a ideia é utilizá-la não para criar novas imagens mas para para converter as já existentes para o modo de 256 cores dos MSX2 e  no “bom e velho” formato binário do MSX-BASIC.

Motivo? Apesar de interessante o modo de vídeo de 256 cores sempre foi meio negligenciado.

E para o assunto não ficar — muito — chato farei em etapas, acrescentando um elemento de cada vez e dando o máximos de explicação sobre as coisas que estão acontecendo, então…

Continuar lendo

Programando em C para o Atari ST

atari-st-c-1_abertura

Esta é a ducentésima quinquagésima sexta publicação deste blog e sabe o que isto significa? Significa que são necessários 16-bits para expressar o número de publicações deste blog, ou seja, não lá muita coisa… 😀

E para “comemorar” a publicação de número 0x100 resolvi juntar duas coisas:

  1. Escrever algo sobre um hardware de 16-bit (o que é legal) e
  2. Aproveitar para praticar um pouco de C, a  linguagem que resolvi aprender um pouco mais este ano.

Continuar lendo

Telas do speccy no MSX – parte 4

tbzscmcb-4_abertura

Continuando com visualizador de telas de ZX-Spectrum no MSX e, como já faz algum muito tempo, é bom aproveitar para relembrar que a primeira parte tratou das diferenças entre os modos de vídeo dos dois computadores (mesma resolução mas uma organização completamente diferente), a segunda sobre como ler um arquivo do disco diretamente em assembly usando as rotinas da BDOS e a terceira sobre como recuperar e interpretar os argumentos da linha de comando do MSX-DOS.

Agora é a vez de tratar da parte mais importante de todo o programa, a rotina que faz a conversão da imagem do vídeo do speecy para a VRAM do MSX.

Continuar lendo

More than 32 sprites on a TMS9128!

tmsbug-1_abertura

Really? The TMS9900 : TMS9918A / TMS9928A / TMS9929A Video Display Processors – Data Manual (Nov 1982) tells:

The video display can have up to 32 sprites on the highest priority video planes.

But I’ve accidentally figured out that due a bug on sprite rendering you can have much more than 32 sprites on screen. And I’ve made tests on Sharp HB-8000 v1.2 (TMS9128) and Frael Bruc 100 (TMS9129) and got the same result in both¹.

(¹) By the way, not only MSX computers but ColecoVision, Sord M5, TI-99/4A etc might be affected too!

Continuar lendo