Telas do speccy no MSX – parte 3

tbzscmcb-3_abertura

Depois do hiato da semana passada segue continuação da série sobre a construção de um visualizador de telas do ZX Spectrum para MSX-DOS. Só para recordar a primeira parte tratou da organização da memória de vídeo do speccy, das diferenças dela com a do MSX e de como compensar as tonalidade das cores. Na segunda parte foi sobre como reorganizar os dados do arquivo SCR para apresentá-los na VRAM do MSX e, claro, como fazer a carga dele usando diretamente as rotinas da BDOS.

Há também uma parte complementar com um pequeno programa em Python que converte telas do ZX para dumps da VRAM em arquivos binários do MSX.

Nesta parte, conforme foi prometido, é a recuperação e tratamento dos argumentos passados pela linha de comando do MSX-DOS e como o assunto é meio chato tentarei ser breve — eu juro 😀

Continuar lendo

Emulando o HB-4100 no openMSX

hb4100_abertura.png

Um pouco de arqueologia… em algum ponto de 1987 a EPCOM SHARP lançou¹ diversos periféricos para a linha MSX, mais especificamente para o modelo deles, o HOTBIT (ou HB-8000 de 1985). Os mais conhecidos deste pacote são certamente o HB-3600 (conjunto com a interface controladora, fonte de alimentação e a unidade de drive de disquetes de 5,25″ DD) e o HB-6000 (a unidade adicional de drive de disquetes).

Entre os lançamentos também estavam o HB-3000, uma interface serial, o HB-4000, cartão de 80 colunas, o HB-4100, expansão de 64KiB de RAM — estes dois últimos pensados como complemento ao HB-3600 — e ainda haveria o HB-4200, um (necessário) expansor de slots que acabou não passando da fase de protótipo.

Tanto o HB-3600 quanto o HB-4000 são emulados pelo openMSX e justamente para matar minha curiosidade com relação ao funcionamento da HB-4100 acabei criando por acidente uma extensão dela para o openMSX.

(¹) Esta sequência culminou com o lançamento da versão 1.2 do HOTBIT (o “HOTBIT preto”) no final deste mesmo ano.

Continuar lendo

Telas do speccy no MSX – parte 2

tbzscmcb-2_abertura

Na parte anterior cuidou das diferenças no vídeo entre os dois computadores, ou seja, o modo como são dispostos os padrões e atributos que compõe a imagem na tela, assim como os tipos de atributos disponíveis, as cores geradas pelos respectivos circuitos de vídeo e também o “truque” usado para simular a relação de luminância das cores do ZX Spectrum no MSX.

Agora é a vez do arquivo que armazena a tela de vídeo do speccy, um programa para visualizá-lo em MSX-BASIC e, o mais importante de todos, uma rotina em assembly para carregar arquivos do disco para a memória.

Continuar lendo

Telas do speccy no MSX – parte 1

tbzscmcb-1_abertura.png

Há algum tempo, lá pelo  final de 2014 para ser mais preciso, resolvi converter telas do ZX Spectrum (ou speccy) para o MSX. Então estudei sobre como era a organização da memória de vídeo deles, como eram codificadas as cores, criei uma rotina de visualização e aí me empolguei e baixei algumas telas do ZX-Art para fazer algo “legal”.

Mas meu algo “legal” ficou tão complicado de implementar que a inspiração acabou antes de conseguir concluí-lo, daí deixei tudo de lado por um tempo e recentemente resolvi mexer no código para pegar uma rotina e aproveitei para, finalmente, fazer algo prático com ela — mas nada de “legal” desta vez. 🙂

Esta primeira parte não tem código, é apenas um resumo sobre como é a organização das memórias de vídeo nos dois computadores, a diferença nas paletas de cores e qual minha solução para compatibilizá-las.

Continuar lendo

Atualização do Flappy Bird

flappybird_1d

Há algum tempo venho mexendo no código do Flappy Bird tanto para aplicar as “novas regras” criadas para organizar o código como para mudar certas coisas e corrigir alguns erros. E como a lista de mudanças foi extensa resolvi anunciá-la, então…

“Flappy Bird for MSX” versão 1.D

Novidades desta versão:

  • Fim do código em tripa com a separação das rotinas em blocos funcionais;
  • Melhor uso dos recursos do Pasmo;
  • Ajustes e correções no Makefile;
  • Uma contagem mais decente da pontuação (agora de 5 em 5);
  • A movimentação do pássaro é feita através da barra de espaços ou do botão 1 do joystick A;
  • Correção do endereço inicial do arquivo binário e
  • Mudança nos endereços de execução para 0x4000 em ROM e 0xC000 em binário (agora é compatível com modelos de 16KiB).

E os arquivos estão disponíveis no repositório do GitHub e na página do jogo (em “Meu Software”) há mais informações a respeito.