Incrementando o Tetris do MSX1

tetris-msx_abertura

Para quem esteve fora deste mundo nos últimos 35 anos, Tetris é um puzzle criado por Alexey Pajitnov em 1984 quando trabalhava na Academia de Ciências de Moscou na antiga URSS e que de tão viciante rapidamente se espalhou pelos demais institutos de pesquisa da capital soviética, pelos países do Leste Europeu e, finalmente, pelo tal do “bloco ocidental” lá pelo final do ano de 1987 , onde foi tanto sucesso de vendas como também um caso de tribunal envolvendo licenciamentos  e sublicenciamentos, todos ilegais, e que foi desenrolado no primeiro semestre de 1989.

Há duas versões oficiais de Tetris para os MSX, a primeira desenvolvida pela Mirrorsoft¹ e preguiçosamente baseada na do ZX Spectrum 128 e a outra, exclusiva para a linha MSX2, lançada no mercado japonês pela Bullet-proof Software². A versão da Mirrosoft foi a primeira encarnação do jogo com o qual tive contato e junto com a do Game Boy as que mais joguei.

Mas sempre a considerei meio mal feia e assim, inspirado pelo episódio de número 124 do Retrocomputaria (parte A e parte B), resolvi fazer algo que sempre achei necessário e tive vontade, dar uma repaginada na versão de Tetris do MSX1! 😀

(¹) Na verdade todas as versões lançadas por ela foram desenvolvidas pela Rowan Software, inclusive as para computadores de 16-bit.

(²) Cujo proprietário é atualmente um dos “donos” do Tetris junto com o Alexey através da The Tetris Company LLC.

Continuar lendo

Convertendo imagens em 16 cores no MSX – parte 2

Esta é a parte final sobre conversão de imagens para os modos de 16 cores do MSX, a primeira tratou da organização e estrutura destes modos de vídeo como também do processo de redução de cores da imagem para fazê-la “caber” em um modo de vídeo que comporta um número reduzido delas.

Nesta parte, o processo de converter a imagem com 16 cores cores para ser visualizada diretamente em um MSX usando MSX-BASIC.

Continuar lendo

Criando uma API REST com Express – parte 1

O Express é um framework para construção de aplicações web utilizando Node.js e o padrão de fato para a linguagem. Nele é possível escrever tanto aplicações web tradicionais como também o backend (ou API se preferir) que será acessado por outras. Por padrão ele implementa as funcionalidades básicas e deixa todo o resto (autenticação, validação etc) para módulos externos que, na sua nomenclatura, são chamados middlewares.

E esta série aqui tem como objetivo me ajudar a fixar tanto meu conhecimento em Node.js em si como também de suas ferramentas e, claro, peculiaridades… 🙂

Continuar lendo

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 MSX2 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

Utilizando o FastAPI – parte 4

Captura de tela com a saída da execução do pytest apresentando os testes executados e a cobertura dos mesmos. Maiores detalhes em "Executando os testes" mais adiante.

Lembrando que na primeira e segunda partes foram apresentados o FastAPI e o pydantic que foram usados, respectivamente, para a implementação dos métodos HTTP e para a validação dos dados. Já a terceira parte acrescentou suporte para bancos de dados com uma ajuda do SQLAlchemy.

E para finalizar, algo que deveria ter sido montado em paralelo desde o começo mas que acabou ficando para esta parte, as rotinas de teste… 🙂

Continuar lendo