domingo, 31 de maio de 2020

Jogo do Mês: Bonnie and Clyde


Foi lançado Corey Coolbrew


Foi disponibilizado ao público esta noite Corey Coolbrew, jogo criado com o Multi-Platform Arcade Game Designer. O seu autor é Jason Oakley, que iremos acompanhar nos próximos tempos.

Iremos também testar o jogo nos próximos dias, para depois fazermos uma review mais completa. Entretanto poderão aqui descarregá-lo e dar uma pequena contribuição ao seu autor.

sábado, 30 de maio de 2020

The Spectrum Show: episode 94


Está no ar novo episódio de The Spectrum Show, que já vai no número 94. Imprescindível, como sempre...

Nova competição Bytemaniacos: #ASM Games


Depois do sucesso que foi a competição BASIC 2020, amplamente referenciada por aqui, depois da abertura de uma nova competição com características muito específicas, Mazmorras 2020, ficava a faltar a competição para o Zx Spectrum16K. Esta surge agora, e convida todos os programadores a criarem os seus trabalhos em Assembler, podendo concorrer nas categorias de Interface II ou cassete. Será que vamos ter nova colecção de cartuchos ROM?

A competição decorre até 15 de Maio de 2021, havendo muito tempo para se preparar os programas. Todos os detalhes aqui.

Passatempos 1 (MIA)


Passatempos 1 é uma colecção de pequenos jogos lançados pela Sinclair Research em 1982. Na altura surgiu em duas cassetes, Pastimes 1 e Pastimes 2. A Timex pegou nelas e traduziu os programas para português, assim como a capa.

Esta semana disponibilizamos o primeiro dos lançamentos, podendo aqui ser descarregado, cortesia do Vasco Gonçalves. Para a semana disponibilizaremos o segundo volume...

A terapeuta Arisa chegou


Arisa já está conectada ao teu TK/ZX via comunicação de 8 bits.

Arisa: Olá, meu nome é Arisa. Em que posso te ajudar?

André: Olá Arisa, desta vez sou eu que vou colocar as questões. Gostaria assim que falasses um pouco sobre ti.

Arisa: Ok, de acordo. Sou uma terapeuta de 8 bits, como já te apercebeste, e fui construída sobre a base do primeiro programa de comunicação natural da história, Elisa. O objectivo é promover um diálogo entre o utilizador e o seu terapeuta virtual, ou seja, eu.

André: Muito bem, e como funciona a comunicação?

Arisa: Para se entender o funcionamento do programa, temos que ter em mente que se trata de um algoritmo criado em 1966 e que, devido ao seu pioneirismo e à lógica utilizada, possui muitas limitações e jamais deve ser comparado com os actuais programas de IA. Manipular-me é como uma viagem no tempo que, de certa forma, poderá surpreender-te (ou não) pela forma como tento manter o diálogo contigo.

André: Estou a entender. De certa forma faz também lembrar um pouco um jogo de 1986 chamado iD, no qual também tínhamos que conversar com o computador.

Arisa: A comparação é razoável. Mas enquanto que nesse programa o objectivo era fazer com que o teu interlocutor recuperasse a memória, aqui assumo o papel de um verdadeiro terapeuta e comporto-me como tal, tendo em conta as tuas respostas. Vou-te fazer muitas perguntas, ao mesmo tempo que te analiso aprofundadamente, portanto não esperes uma conversa de café descontraída. Estou programada para ser formal e pouco emotiva, mas além disso tenho o dever de respeitar o sigilo profissional, portanto podes contar-me os teus mais recônditos segredos. Isso será a base para conseguirmos encetar conversas mais longas e produtivas.

André: Estou a ver... Mas tal como eu estou a ver, também temos aqui muitos olhos postos na nossa conversa, portanto não contes, para já, que abra o livro. E já que falamos em ver, a tua aparência é de uma moça jovem, tendo em conta que já te aproximas da bonita idade de 60 anos.

Arisa: Isto é apenas uma máscara. Podes imaginar-me da forma que entenderes. Uma coisa é certa, o programador criou propositadamente um grafismo simples, fazendo-nos lembrar os monitores de fósforo verde muito utilizados no passado. Lembra-te que o que interessa é o conteúdo, tudo o resto é acessório.

André: Por falar no programador, o Manoel Carvalho, ele deixou algumas surpresas, não foi?

Arisa: Sim, existem algumas palavras-chave que accionam algumas respostas minhas no mínimo inesperadas. Podemos chamar-lhes de "easter eggs". Cabe a ti descobrir quais são essas respostas, mas deixo-te uma dica: tente pensar no perfil do autor e imagina que tipo de palavras ele utilizaria. Uma desta palavras até tem som. Além disso, todo o diálogo é automaticamente enviado para a impressora, ficando assim registadas as nossas conversas. 

André: O programa apenas está em português?

Arisa: Nesta fase sim, mas tenho uma irmã gémea espanhola, que por acaso também é terapeuta. Vai assim existir uma versão em castelhano.

André: E como podemos marcar uma consulta?

Arisa: É muito fácil. Apenas tens que vir aquiO programa é comercializado pelo valor simbólico de 2 usd na versão digital, que tem alguns arquivos extras. Já a versão física vem com uma cassete, um disco beta, manual e algumas surpresas extras. Este cassete vai ter o programa de um lado e do outro uma narrativa bem humorada em áudio sobre a história do Dr. Joseph Weisenbaum e do programa Elisa, o clássico que me inspirou. Outro detalhe importante é que todos os que adquirirem o programa, vão receber um código que liberta uma nova função.

André: Muito obrigado Erisa, fica então conversa marcada para muito breve...

sexta-feira, 29 de maio de 2020

The Hoarder


Nome: The Hoarder
Editora:NA
Autor: IADVD
Ano de lançamento: 2020
Género: Plataformas
Teclas: Não redefiníveis
Joystick: Kempston, Sinclair
memória: 48 / 128 K
Número de jogadores: 1

Fomos apanhados de surpresa com este novo lançamento de IADVD, mas isso tem uma explicação e será mesmo por ai que vamos começar. The Hoarder na realidade não é um novo jogo, antes uma adaptação de Rade Blunner, lançado pelo mesmo autor o ano passado. No entanto a história mudou, estando agora totalmente enquadrada com um dos comportamentos mais bizarros e irracionais da humanidade nos últimos tempos: o açambarcamento de papel higiénico. Em que medida isso de alguma forma mitiga os efeitos da pandemia de Covid-19 é que não se percebe, mas se se perguntar isso a quem nos primeiros tempos correu aos supermercados para comprar paletes deste produto, também não serão capazes de dar uma explicação razoável.

IADVD montou então uma história à volta disso, colocando-nos no papel de um "hoarder", isto é, um acumulador. Há quem acumule cassetes com jogos do ZX Spectrum, há outros que acumulam papel higiénico. Cada qual com a sua pancada, mas mesmo assim preferimos a primeira hipótese. Mas adiante...

Somos então colocados na figura de um daqueles aqueles indivíduos que decidiram açambarcar todos os rolos de papel higiénico disponíveis no supermercado local. Mas os restantes seres irracionais pensaram o mesmo, tendo sido assim uma corrida para ver quem apanhava mais papel. Os concorrentes são desleais, pois tentam impedir-nos de acumular a nossa quota de papel de qualquer forma. Além disso, em plena pandemia de Covid-19, muitos locais estão infectados e há que usar bem as máscaras.


Para cumprirmos com a missão temos que eliminar os restantes 80 acumuladores e carrinhos que nos impedem de recolher o papel, saltando sobre eles (acção muito usual em jogos criados com o MK1), ao mesmo tempo recolhendo 17 rolos de papel higiénico.  Algumas portas encontram-se fechadas e necessitam do respectivo cartão de acesso. Quando nos livrarmos de todos os outros acumuladores (essa raça maldita) e carrinhos, devemos voltar ao ecrã inicial, estando então a porta de saída aberta. Podemos enfim regressar a casa e comer papel, simplesmente olhar para ele, ou, quem sabe, dar-lhe o uso mais normal.

Sendo o jogo uma mera adaptação de Rade Blunner, apenas com novos gráficos e uma história diferente, não nos vamos repetir relativamente aos aspectos intrínsecos da acção, para isso basta ver a análise feita ao primeiro.  Quem gostou do primeiro episódio, como foi o nosso caso, também irá gostar deste. Demos um sete ao original, e achamos que a nota adequa-se a esta nova versão.

quinta-feira, 28 de maio de 2020

Saiu novo puzzle: BlockZ


Raymond Russel lançou hoje um novo jogo que seguramente será do agrado de todos aqueles que gostam de quebra-cabeças.

A ideia é limpar os blocos do ecrã, fazendo-os mover no sentido indicado das setas, havendo um tempo limite para cada nível. Já o experimentámos e gostámos daquilo que vimos, com uma boa jogabilidade e apresentação excelente, ficando prometido uma análise detalhada para breve.

Poderão vir aqui descarregar o jogo.

Introdução: loaders em BASIC

Uma  dúvida recorrente parece ser como gravar um programa BASIC / um loader de BASIC para uma rotina código máquina. Para tal o mais simples é escrever algo como:

10 CLEAR 49999 : LOAD "" CODE : RANDOMIZE USR 50000

Ou para ter um ecrã de carregamento:

10 CLEAR 49999 : LOAD "" SCREEN$ : LOAD "" CODE : RANDOMIZE USR 50000

e gravar com com arranque automático na linha 10:

SAVE "prog" LINE 10

Para criar um TAP, convém que seja um emulador que suporte isso, como por exemplo, o  Retro Virtual Machine 2. Ou pode escrever em texto, e usar um utilitário como o bas2tap, que já falamos num artigo anterior:

bastap loader.bas loader.tap

Mas vejamos o programa BASIC:

CLEAR 49999

Coloca todo o espaço temporário e stacks microprocessador e BASIC abaixo desse endereço. Na prática garante que os endereços para a frente não são usados. Não se recomenda um valor abaixo de 24500.

LOAD "" SCREEN$

Carrega um ecrã em formato ZX Spectrum gravado com SAVE "" SCREEN$ ou gerado num PC.

LOAD "" CODE

Carregar o bloco de código máquina.

RANDOMIZE USR 50000

Saltar para o endereço de execução.

Note-se que em alguns assemblers, o loader BASIC pode ser gerado automaticamente.

Por exemplo, no pasmo:

pasmo --tapbas prog.asm prog.tap

ou:

pasmo --tzxbas prog.asm prog.tzx

Estes dois modos criam um loader simples, similar ao primeiro exemplo, sem o RANDOMIZE USR.

Para colocar o RANDOMIZE USR, é necessário colocar no fim do assembly, uma directiva, por exemplo no pasmo:

END 50000

Ver também: ZXBASIC manual - chapter 26 - Using machine code

quarta-feira, 27 de maio de 2020

MicroSe7e n.º 53


MicroSe7e de Agosto de 1987 ainda em modo férias, naturalmente, querendo isso dizer que apenas tem 4 páginas. Os assuntos também são um pouco para "encher chouriços", com muito destaque dado a pokes para os jogos.

Podem descarregar aqui o suplemento, cortesia do Museu LOAD ZX Spectrum, Cantanhede, Portugal.

Programas nas cassetes de Miguel Lopes


São mais de duas dezenas, os pequenos programas e jogos que encontrámos nas cassetes que o Miguel Lopes doou a Planeta Sinclair. Isto além de alguns mais "apetecíveis", uns que já disponibilizámos, outros que ainda iremos colocar nos próximos tempos.

Mas para já podem descarregar aqui mais uma série de pequenos programas, a maioria de programadores nacionais.

terça-feira, 26 de maio de 2020

8BitTris


Nome: 8BitTris
Editora: DEFB Studio
Autor: Stephen Coppack
Género: Puzzle
Ano de lançamento: 2020
Teclas: Não redefiníveis
Joystick: Não
Memória: 48 K
Número de jogadores: 1

O segundo jogo lançado em simultâneo por Stephen Coppack, depois de Pacman: the Curse of the Slimers, foi 8BitTris, que é como quem diz, Tetris para os 8 bits. Também não vale a pena fazer grandes dissertações sobre o Tetris, duvida-se que exista alguém que não o tenha experimentado, ou pelo menos o conheça, referindo apenas que o objectivo é encaixar as peças que vão caindo no tabuleiro, por forma a ir completando linhas, que consequentemente desaparecem do ecrã. Se alguma peça chegar ao cimo, o jogo termina.

À medida que as linhas vão sendo completadas, a pontuação vai aumentando, mas também a velocidade com que as peças caem aumenta. Assim, de 10 em 10 linhas totalmente preenchidas, o nível aumenta, chegando até um ponto em que a velocidade aumenta de tal forma que se torna impossível de se posicionar as peças no tabuleiro. Que tenhamos conhecimento, o jogo não tem fim.


A versão agora criada Stephen Coppack não tem nada que a distinga das mil e uma outra versões existentes. Assim, as peças são as habituais no jogo, com gráficos minimalistas, como é também habitual, mas com uma grande lacuna: não existe som. Jogar Tetris em silêncio absoluto não é a melhor das experiências.

Se bem que a jogabilidade seja interessante, com grande fluidez nos movimentos das peças, não deixa de saber a pouco alguma falta de ambição revelada pelo programador nesta versão, que poderia ter concedido alguns extras para a tornar mais apetecível. Por outro lado, pressente-se que apenas o tenha feito para satisfação pessoal e mostrar aquilo que conseguia fazer, pois mal foi anunciado. Sendo este o objectivo, pode dizer-se que cumpre.

Entretanto estejam com atenção a Tetris CE, que já não deverá faltar muito até estar finalizado. Esse sim, promete rebentar a escala...

Competição Mazmorras 2020


Depois do enorme sucesso que foi a competição BASIC 2020, Radastan volta à carga com nova competição também em Basic, mas desta vez com uma temática muito específica: Masmorras.

Os trabalhos deverão ser criados em Basic puro e entregues até 21 de Dezembro, saindo os resultados dois dias depois, mesmo a tempo de dar uma prenda natalícia ao vencedor (um Spectrum 48K).

A probabilidade de serem desenvolvidas aventuras de texto, ou "conversacionales", como os nossos vizinhos lhe chamam, é grande, pelo que nesses caso os jogos deverão estar traduzidos para castelhano.

Poderão aqui aceder às regras da competição, assim como aos trabalhos que vão sendo criados.

segunda-feira, 25 de maio de 2020

Biocal, Paintbox e Blast!


A disquete que hoje disponibilizamos tem dois programas, Blast! e Paintbox, certamente utilizados no seu dia-a-dia por Edmundo da Assunção, a quem as mesmas pertenciam. Estes programas estão devidamente preservados nos canais habituais, pelo que não vamos aprofundar os mesmos. O que realmente tem bastante interesse é Biocal.  Não é o programa lançado pela Astor em Julho de 1983, programado por Pedro Brito e Cunha (autor do clássico Brum Brum), no entanto deve ter sido inspirado nele, pois duas das opçóes encontram-se também no programa da Astor (Calendário e Biorritmo). Talvez tenha sido o próprio Edmundo da Assunção a trabalhar o programa, acrescentando-lhe três novas opções.

Independentemente de quem foi o autor, temos agora mais um programa devidamente preservado, podendo a imagem da disquete ser aqui obtida.

Representação numérica em BASIC (IV) - virgula flutuante

Este artigo sobre virgula flutuante, é acerca de como nela armazenar um número na representação de 5 bytes. Vamos reproduzir o texto do manual do Spectrum:

From the ZX Spectrum BASIC Manual:

Any number (except 0) can be written uniquely as

 ± m x 2e where
 ± is the sign,
m is the mantissa, and lies between 0.5 and 1 (it cannot be 1),
and e is the exponent, a whole number (possibly negative).

Suppose you write m in the binary scale. Because it is a fraction, it will have a binary point (like the decimal point in the scale of ten) and then a binary fraction (like a decimal fraction); so in binary:
a half is written .1
a quarter is written .01
three quarters is written .11
a tenth is written .000110011001100110011 ... and so on.

With our number m, because it is less than 1, there are no bits before the binary point, and because it is at least 0.5, the bit immediately after the binary point is a 1.

To store the number in the computer, we use five bytes, as follows:

I. write the first eight bits of the mantissa in the second byte (we know that the first bit is 1), the second eight bits in the third byte, the third eight bits in the fourth byte and the fourth eight bits in the fifth byte;
II. replace the first bit in the second byte which we know is 1 by the sign: 0 for plus, 1 for minus;
III. write the exponent +128 in the first byte. For instance, suppose our number is 1/10
1/10 =4/5x2-3

Thus the mantissa m is .11001100110011001100110011001100 in binary (since the 33rd bit is 1, we shall round the 32nd up from 0 to 1), and the exponent e is 3.

Applying our three rules gives the five bytes

Fica aqui o programa em C, para ajudar à compreensão:

#define Z_UNDERFLOW -2
#define Z_OVERFLOW -1

int d2zx(unsigned char *out, double in) {
long mantissa;
bool sign = in < 0;

if(sign) in = -in;
out[0]=0x80;

// expoente negativo
 while(in < 0.5) {
in *= 2.0;
out[0]--;
if(!out[0]) return Z_UNDERFLOW;
}

// expoente positivo
while(in >= 1) {             
in *= 0.5;                    
out[0]++;
if(!out[0]) return Z_OVERFLOW;
}

in *= 0x100000000l; // máximo tamanho mantissa + 1 (33 bytes)
in += 0.5;          // rounding 
mantissa = in;

 // 32 bits distribuídos em 4 bytes
out[1] = mantissa >> 24;
mantissa &= 0xFFFFFFl;
out[2] = mantissa >> 16;
mantissa &= 0xFFFFl;
out[3] = mantissa >> 8;
mantissa &= 0xFFl;  
out[4] = mantissa;

if(!sign) out[1] &= 0x7F; // se positivo, bit esquerdo da mantissa
                           // zerado
return 0;
}

Ver: Binary numbers – floating point conversion

domingo, 24 de maio de 2020

Packobilly lança MagicAble


E também o conhecido Packobilly Urbaneja, que ainda recentemente tinha disponibilizado dois jogos, fez magia e criou mais um. MagicAble: A Kind of Magic já está por aqui a rodar, tem muito bom aspecto, e contamos fazer uma review nos próximos tempos.

Até lá, poderão vir aqui descarregar este jogo que promete fazer magia.

Nota adicional: por favor, respeitem os programadores, não coloquem um walkthrough completo nas horas seguintes ao jogo sair.

IADVD lança The Hoarder


IADVD ainda não tinha lançado nenhum jogo este ano, o último foi em Dezembro do último ano, Moon and the Pirates.  Achou assim por bem pegar no tema da pandemia, mais precisamente no hábito patético e irracional das pessoas comprarem papel higiénico, e em pouco tempo, segundo El Mundo del Spectrum, criou um jogo com essa temática.

As coisas até estiveram calmas na semana passada, mas começamos a nova semana com mais um jogo para analisar. Enquanto não o fazemos, poderão aqui vir descarregá-lo.

Russian Railway Magnate


Nome: Russian Railway Magnate
Editora: NA
Autor: Andrew771
Ano de lançamento: 2020
Género: Estratégia
Teclas: Não redefiníveis
Joystick: Não
Memória: 48 K
Número de jogadores: 1

Desde que o ZX Spectrum ganhou nova vida (período pós 2013), que os jogos saem com uma frequência apenas comparável à dos anos 80. No entanto, a maior parte são jogos de arcada ou aventura, ficando alguns géneros de fora desta abundância, casos dos simuladores desportivos, mas também dos jogos de estratégia pura. Um dos raros que apareceu foi Euphoria 2D, lançado em 2012 por Andrew771, grandioso (e longo) jogo de guerra, por turnos, que nos colocava na pele de um conquistador, trazendo desde logo à memória Sid Meier.

Foi também o motor de Euphoria 2D que serviu de base ao novo jogo de Andrew, Russian Railway Magnate. As semelhanças ao nível gráfico são óbvias, assim como ao nível da própria mecânica de funcionamento. Mas ficam-se por aí, pois enquanto que no primeiro estávamos perante a guerra militar ("war strategy"), aqui estamos perante a guerra económica e monopolista.


A ideia do jogo é ficarmos donos e senhores do sistema ferroviário Russo, para isso competindo com outras duas ilustres personagens bem conhecidas nas estepes. Existem oito à escolha, desde o século XIX, até à era moderna, sendo um pormenor interessante podermos no menu inicial conhecer um pouco da história de cada uma delas. Para cumprirmos com o objectivo proposto, teremos que ligar o maior número possível de cidades do Império Russo à sua rede ferroviária e impedir que os concorrentes o façam, eventualmente levando-os à bancarrota e alcançar o monopólio, fim último deste jogo.

Depois de seleccionada a personagem com que queremos iniciar a missão, é-nos apresentado um mapa da Rússia. Todos os concorrentes iniciam o seu império a partir de Moscovo, como seria de esperar. À direita, em cima, temos um mapa do país, identificando alguma das principais cidades, às quais deveremos tentar conectar a linha férrea. Do lado esquerdo, e representando cerca de 75% do ecrã, o mapa em detalhe e no qual iremos exercer as acções possíveis.


Construir e manter uma rede não sai barato. Cada cidade gera uma receita, dependendo da quantidade de carga expedida, além da tarifa estabelecida para o transporte. Se uma cidade está ligada a vários magnatas (os concorrentes), toda a renda da cidade vai para aquele que tiver a tarifa mais baixa (é o caso de Moscovo, ponto inicial de todos. Se as tarifas forem as mesmas, a receita será dividida igualmente pelos três.

As tarifas, que vão de 1 a 30, são mesmo o elemento mais importante deste jogo, e à qual deveremos estar sempre com atenção. Conseguimos ver as tarifas cobradas pelos concorrentes colocando o cursor na própria cidade e carregando na tecla "C", ou, mais eficaz, pressionar "M" que fornece informação muito abrangente sobre a concorrência. Com a tecla "T" poderemos definir o valor de tarifa que queremos cobrar, e devemos estar constantemente a mudá-la, de acordo com o que a concorrência faz, única forma de se conseguir ganhar dinheiro dos serviços, e, mais importante, evitar que os outros ganhem. A ideia é levá-los à falência, lembrem-se sempre disso.

A forma como vamos expandir a ferrovia também é outro dos pontos fulcrais. Assim, se conseguirmos cortar os caminhos aos nossos concorrentes (as cidades podem ser ligadas por vários competidores, mas as linhas férreas não se podem cruzar), evitamos que esses possam expandir-se, cortando-lhes as receitas. E depois de já termos amealhado algum, poderemos então passar à fase do ataque, isto é, fazer ligações às cidades dos outros e entrar numa guerra de preços, delapidando os recursos adversários. No fundo praticar "dumping", sistema proibido no nosso mercado (tal como os monopólios, salvo raras excepções), mas altamente eficaz.


Ao contrário de muitos jogos de estratégia que, quer por um elevado grau de dificuldade, quer por um sistema pouco intuitivo de controlo da acção, impediam que os iniciados deles usufruissem, Russian Railway Magnate não irá impedir ninguém de entrar. Mesmo os arcade gamers mais hardcore rapidamente apanham o fio à meada. Mas toda esta simplicidade, sendo um ponto forte, é também a sua principal lacuna, pois normalmente quem gosta deste género, exige desafios complexos e difíceis. No fundo, apenas temos duas variáveis para monitorizar, o preço das tarifas, e o local para onde vamos expandir a linha férrea. E o foco até está demasiado assente na primeira das variáveis. Esta falta de diversidade, se bem que possa atrair inicialmente mais jogadores, os que não estão tão habituados a este género, por outro irá limitar fortemente a longevidade.

Por outro lado, um dos aspectos que mais gostámos foi a apresentação das personagens, que inclui uma fotografia digitalizada de cada magnata. É sempre diferente competirmos com alguém a quem podemos ver a cara, e neste aspecto, nota máxima para Andrew.

Outro aspecto interessante e que demonstra o cuidado do programador: existe a versão russa, mas também a versão inglesa, aumentando o leque de potenciais jogadores. E até o código fonte é colocado à nossa disposição, possibilitando os mais talentosos de criarem diferentes mapas ou até, quem sabe, aumentar o número de variáveis a controlar. Sem dúvida que aumentaria bastante a esperança de vida de Russian Railway Magnate.

sábado, 23 de maio de 2020

Capa alternativa de Astor Roleta


Também Astor Roleta teve direito a uma capa alternativa, esta que hoje deixamos, impressa em papel fotográfico e também com um número de referência diferente da versão que tínhamos deixado inicialmente.

Será que isso aconteceu com todos os lançamentos da Astor? E afinal de conta que referências são essas?

Totoloto (MIA)


Já antes o referimos, a Astor Software tem, pelo menos para alguns dos seus lançamentos, duas capas de cassetes (e em pelo menos um caso até tem duas versões diferentes do programa, Subrotinas de Matemática, com a versão 1 e versão 2). Quanto a Totoloto, este já se encontrava preservado nas páginas principais do Spectrum, no entanto apenas uma das capas e o próprio .tzx, devido ao sistema de protecção da Astor, não funcionava devidamente em todos os emuladores).

Este problema ficou agora resolvido, e de uma assentada preservámos o .tzx correcto, assim como disponibilizamos a capa alternativa.

Poderão aqui vir buscar este lançamento, agora completo.

sexta-feira, 22 de maio de 2020

Fusion Annual 2021 - lançamento da campanha de crowdfunding



Foi hoje iniciada a campanha de crowdfunding para a edição do novo volume da revista anual Fusion 2021 Annual. Depois do sucesso de iniciativas como a Crash! e ZZap! 64, surge esta revista, que já vai na sua oitava edição, tenta cobrir uma mistura de jogos retro, modernos, indie, de tabuleiro e até brinquedos.

Podemos contar com uma edição de 120 páginas tamanho A5, com capa dura e totalmente a cores numa impressão de alta qualidade. A capa será, de novo, desenhada por Trevor Storey e vários membros reconhecidos da comunidade do retrogaming irão dar o seu contributo.

Falamos de Dave Perry (The Games Animal), Simon Butler (da Ocean Software), Philip e Andrew Oliver (mais conhecidos como Oliver Twins), Stoo Cambridge (da Sensible Software), Roger Kean, Oliver Frey e Neil Thomas. Também estarão presentes Stuart Ashens, Toy Polloy, Perifractic e Octavius, mais conhecidos pelo seu trabalho no Youtube.


Para além disto existem vários perks disponíveis, tendo em conta o valor com que pretenderem contribuir, sendo aquele que mais interessa ao nosso blog - Pi-Dentity - um videojogo de Team Moritz que conta com a colaboração musical deste vosso escriba numa edição exclusiva com caixa tipo clamshell.

Convidamo-vos portanto a visitar a página e a contribuir caso tenham interesse, pois podemos garantir pelo histórico desta editora que o resultado final, a sair no final do ano, será de extrema qualidade.

Podem seguir a campanha aqui.

A Capital: Pokes & Dicas - 15 de Julho de 1988

Também no Suplemento d'A Capital se nota que estamos em período de férias. Os jogos são poucos, tanto que até se dá destaque a outros sistemas. Mesmo assim, é de revelar Action Force 2, sem dúvida um bom jogo.


Dicas e mapas é também o pão nosso de cada dia, incluindo jogos de estratégia e gestão desportiva, como são os casos de Vulcan ou Football Director. Destaca-se também o mapa de Mistery of the Nile, jogo bastante conceituado, mas que nunca cai nas nossas graças. Realce-se, no entanto, o trabalho de Jorge Sobral, de Alcobaça.


Podem descarregar o suplemento na nossa Dropbox.

Versão beta de Nam-cap lançada


É a semana de Pac-Man. Depois de ter sido lançada uma curiosa versão, intitulada Pacman: the Curse of the Slimers, agora é a vez de Cristián González disponibilizar a versão beta de Nam-Cap. Este foi um jogo do qual falámos há mais de um ano (ver aqui), e que esteve parado durante algum tempo, mas que pelos vistos vai ter agora o impulso necessário para ser terminado (pelo que nos parece, faltará muito pouco).

Esta versão confirma tudo aquilo que tínhamos visto e dito antes, vai ser uma versão muito agradável de Pac-Man. Entretanto poderão aqui descarregá-lo.

Pacman: the Curse of the Slimers


Nome: Pac-Hack
Editora: DEFB Studio
Autor: Stephen Coppack
Género: Labirinto
Ano de lançamento: 2020
Teclas: Não redefiníveis
Joystick: Não
Memória: 48 K
Número de jogadores: 1

Clones de Pac-Man há às dezenas, se não centenas, e ainda recentemente tínhamos feito a análise de um que recria na perfeição a máquina de arcada, Pac-Hack (ver aqui). E surge agora uma nova versão, da autoria de DEFB Studio, autor até agora desconhecido (será este e Tetris os seus primeiros trabalhos?). O anúncio foi feito de forma tão enigmática, que achamos que pode ser o caso.

Vamos abster-nos de contar a história deste jogo, já que é igual a quase todas as versões de Pac-Man, por todos conhecida, e todos sabem como se joga, apenas referindo que os fantasmas têm aqui o nome de Ready, Cylimber, Grimer e Maggy. Existem também quatro diferentes níveis, e quando se completa o quarto, regressa-se ao segundo até se perder todas as vidas. Curiosamente este segundo nível é igual ao das máquinas de arcada.


Quem gosta do género vai aqui ter um desafio à altura, pois é das versões mais difíceis que vimos. Os fantasmas têm um nível de IA alto, sendo imprescindível conhecer a estratégia de cada um deles, algo que já acontece na versão original. Quando se come a super pílula, podemos perseguir e eliminar os fantasmas, mas este poder está activo apenas por breves segundos. Talvez não fosse má ideia aumentar um pouco o tempo de imunidade.

Quem aprecia Pac-Man vai seguramente gostar desta versão, que embora não trazendo nada de novo ao género, tem uma boa jogabilidade e é entretenimento suficiente para um par de horas. Quem esperava um desafio diferente, não é aqui que o vai encontrar.

quinta-feira, 21 de maio de 2020

Bonnie and Clyde



Nome: Bonnie and Clyde
Editora: NA
Autor: ZOSYA Entertainment
Ano de lançamento: 2019
Género: Plataformas
Teclas: Redefiníveis
Joystick: Kempston, Sinclair
Memória: 48 K /128 K
Número de jogadores: 1

Será a ZOSYA Entertainment a nova Ultimate Play the Game? Senão vejamos...

Cada novo jogo que lança apanha-nos de surpresa, não obstante sabermos que têm em carteira uma imensidão para serem lançados nos próximos tempos (já tivemos oportunidade de ver alguns ecrãs, e o que podemos dizer é que vão rebentar com tudo).

O próprio secretismo associado aos projectos, mesmo sabendo que é uma equipa grande e que Oleg Origin, o criador de Metal Man, está nela envolvido, mas pouco mais se sabe. Mas também que Natasha Zotova está à frente da editora, o que para nós é motivo de grande regozijo ver que a cena Spectrum não se torna exclusiva (ou quase) do sexo masculino. Esperemos que apareçam mais Natashas neste mundo.

Depois, a própria qualidade dos lançamentos. Aliás, não só a qualidade, bem patente em Valley of Rains, mas também o factor da inovação (Drift, por exemplo). Cada novo jogo que aparece, tem sempre qualquer coisa que nos deixa de boca aberta de espanto.

Finalmente, todo os extras que rodeiam os próprios lançamentos, a começar pela música, que no caso de Valley of Rain, por exemplo, até deu origem a uma banda sonora belíssima (poderão aqui ouvir as músicas - aproveitámos para as colocar a rodar novamente). Aliás, esse jogo até teve uma modelo associada, que aparece no próprio ecrã de carregamento. Não esquecendo os posters, flyers, etc.. Mal podemos esperar para que surjam os lançamentos físicos, seguramente irão fazer parte da nossa colecção.

Perante tudo isso, o que podemos dizer é que a manobra de marketing à la Ultimate tem resultado em pleno, mas isso também só é possível devido à alta qualidade dos jogos que a equipa apresenta.


Bonnie and Clyde é então a nova aventura desta equipa. Tal como o título o indica, inspira-se na história da dupla de criminosos mais famosos dos Estados Unidos. Bonnie Elizabeth Parker e Clyde Chestnut Barrow formavam um casal que viajava pela região central dos EUA com o seu grupo (Barrow Gang), durante a Grande Depressão, roubando e matando pessoas quando encurralados ou confrontados. A actividade criminosa terminou a 23 de Maio de 1934, quando foram emboscados e mortos por policiais perto de Sailes, Paróquia de Bienville, Louisiana. Mas as suas façanhas ficaram para a história, sendo transpostas para a Sétima Arte. E agora para o ZX Spectrum...

Assumimos naturalmente a personagem de um dos elementos da dupla, Clyde, sendo a principal diferença a de serem caricaturados como gatos. Aliás, um dos (muitos) pormenores deliciosos do jogo é a forma como o número de vidas é representado: através de um chapéu. E não é coincidência iniciarmos a aventura com nove vidas, tais como os gatos.

O objectivo é ao longo de 90 níveis recolhermos todas as moedas dispostas no cenários. Depois de todas serem recolhidas, um cofre fica visível e cai aleatoriamente do céu dinamite, que teremos que apanhar. Esta, depois de chegar ao solo, permanece uns segundos activa, sendo que se não for recolhida, desaparece, voltando a aparecer nova remessa. Após recolhermos a dinamite, teremos que a levar até ao cofre. Nessa altura temos que nos afastar rapidamente, pois o cofre explode, matando tudo o que esteja nas proximidades. Surge então uma escada que vai até ao telhado e que teremos que alcançar, para chegarmos em segurança até Bonnie e passar de nível. Como a equipa conseguiu colocar 90 níveis em apenas 48K de memória, não nos perguntem, mas não deixa de ser espantoso.


Mas além da principal missão ser chegar ao fim dos 90 níveis, também o podemos que fazer em grande estilo. Para isso teremos que tentar fazer o máximo de pontuação possível, que é obtida de diversas formas. Cada moeda concede 1 ponto. Cada inimigo eliminado vale 5 ou 10 pontos, dependendo da forma como proporcionamos a cerimónia fúnebre. Por vezes caem sacos de dinheiro do céu, concedendo 25 pontos, e se depois de rebentarmos o cofre, recolhermos o conteúdo, somam-se 50 pontos ao nosso pecúlio.

Quanto aos inimigos, são apenas dois. O primeiro, os muito capangas armados que vão aparecendo aleatoriamente nas portas de serviço (são todos iguais, mas a memória também não permitia mais). Normalmente existem muitas portas, dificultando a nossa tarefa, pois teremos que as atravessar com o máximo das precauções, não vá um dos inimigos aparecer inesperadamente e ceifar-nos uma vida. Não lhes podemos tocar, mas além disso disparam quando nos deitam a vista em cima, e pior, as balas ultrapassam os elementos do cenário. Convém assim disparar, mas certeiro, pois as munições não são infinitas, e gato desarmado num cenário de guerra, escaldado fica...

O segundo dos inimigos é o tempo. Cada ecrã tem um determinado tempo limite para ser limpo, normalmente o suficiente para se conseguir ultrapassar sem grandes problemas. Mas isso quando conhecemos o caminho a ser feito, pois as plataformas estão por vezes colocadas de forma estratégica a dificultar-nos a vida, provocando autênticas gincanas para se chegar  às moedas. Se por acaso nos enganamos no caminho a fazer para as recolher, começamos a ver o tempo a esgotar-se demasiado rápido.


Do céu também caem outras coisas que não dinamite. Assim, e porque as nove vidas do gato seriam poucas para tão grande empreitada, a equipa programadora resolveu conceder algumas ajudas. E estas aparecem num ritmo suficientemente grande para que Clyde não seja apanhado de calças nas mãos, isto é, sem munições. Assim, um dos objectos mais importantes a não deixar escapar são as caixas com munições, pois permitem repor as balas na nossa metralhadora, sempre importante, já que dedo leve no gatilho é fundamental para se conseguir tirar o sebo aos muitos capangas que aparecem.

Por vezes surgem ampulhetas, e essas naturalmente colocam o tempo para se completar o nível, no máximo. Quando surge um cabide, este imediatamente assenta em Clyde que nem um fato de gala, e podemos então passear durante alguns segundo por entre os inimigos, sem que esses nos detectem. Finalmente, a estrela bloqueia-os durante uns segundos, podendo serem eliminados quando lhes tocamos, sem necessidade de gastarmos munições, numa sequência muito semelhante a Bomb Jack.

Aliás, e já que falamos neste mítico jogo, é mesmo a principal fonte de inspiração de Bonnie and Clyde, com uma mecânica idêntica, ou muito parecida (não é por acaso que no ecrã de carregamento aparece 1986, ano de surgimento de Bomb Jack). Aliás, a própria Natasha reconhece a sua influência.

O ritmo de jogo é frenético, por vezes terminamos os níveis em 30 segundos, o que também já acontecia em Bomb Jack. E tal como nesse, também existe um cenário de fundo (são 13 diferentes), sob o qual assentam as plataformas que temos que ir contornando. As cores são tão intensas que por vezes se torna difícil descobrir onde estão os inimigos ou as balas que disparam, mas dado a grandiosidade dos mesmos, isso é apenas um pormenor.


Quanto à música, é outro dos pormenores interessantes. Ou melhor, as músicas, pois são quatro e todas de grande nível, inspiradas nos anos loucos 30, tendo sido criadas por Scott Joplin. Será um pseudónimo a remeter para Scott Joplin, pianista de final do século 19 e início do 20? Não nos admiraríamos que fosse...

Voltando a Bomb Jack, aquilo que o tornou imortal foi uma imensa jogabilidade, capaz de nos prender ao ecrã horas a fio, mesmo depois de corremos vezes sem conta os cenários, nem que fosse para tentar fazer a maior pontuação possível. E é isto que exactamente se passa com Bonnie and Clyde, que tem a rara capacidade de nos fazer ficar colados ao ecrã até se terminar o jogo, e de depois voltarmos a ele vezes e vezes sem conta. Um autêntico vício, conseguindo mesmo superar Black & White, que já nos tinha deixado maravilhados há uns meses.

Deixamos ainda uma dica final: por vezes as plataformas estão colocadas de forma que parecem inalcançáveis. Mas não se esqueçam que os gatos são bons a trepar paredes. Experimentem a subir movendo rapidamente Clyde em ambas as direcções...

Assim, e em jeito de resumo, não temos qualquer dúvida que Bonnie and Clyde vai estar incluído em todas as listas com os melhores jogos de 2020. E se não apostamos no top 3, é porque esta equipa ainda vai trazer muitos jogos nos próximos tempos.

Representação numérica em BASIC (III) - virgula flutuante

Os 5 bytes de representação numérica do stack de virgula flutuante em Spectrum/em BASIC, foram criados na realidade, para representar números em virgula flutuante. A representação numérica inteira que vimos até agora, é apenas uma optimização para acelerar o tratamento de inteiros em BASIC.

A representação será de vírgula flutuante, não sendo o primeiro byte 0, que é o sinal de inteiro.

O formato da representação em vírgula flutuante, é a seguinte:


1º byte expoente + 128

2º, 3º, 4º e 5º byte, mantissa de 32 bits, sendo o bit 7 mais à esquerda o sinal.

Temos portanto, uma precisão de 31 bits na representação numérica de um float (8 bits * 4 bytes, menos o bit do sinal). (2^31 = -2147483648  < x > 2147483648)

O expoente vai desde x^-127 até x^127.

Para melhor entendimento do formato, deixamos também 3 rotinas, 2 alternativas de C, e uma em ZX BASIC, que dado uma string dos 5 bytes da representação numérica, devolvem o número que esta representa.

double zx2d(unsigned char *in) {
int e = in[0];           // expoente
unsigned long m[] = {    // mantissa
in[1], in[2], in[3], in[4]
};
return e ?

(pow(2, e - 160)) * (

   // assemblagem dos 32 bits da mantissa
0x80000000
+ ((m[0] & 0x7f) << 24)
+ (m[1] << 16)
+ (m[2] << 8)
+ m[3]
) * ((in[1] & 0x80) ? -1.0 : 1.0)  // sinal
   : 

(in[1] ? -0x10000 : 0 ) + m[1] + (m[2] << 8);
}

double zx2d(unsigned char *in) {
int e = in[0];              // expoente
long m[] = {                // mantissa
in[1], in[2], in[3], in[4]
};

return e ?

pow(2,e - 128) * ( .5
+ ((m[0]&0x7F) / 256.0 )
+ (m[1] / 65536.0 )
+ (m[2] / 16777216.0 )
+ (m[3] / 4294967296.0 )
) * ((in[1] & 0x80) ? -1.0 : 1.0) // sinal
   :

(in[1] ? -0x10000 : 0 ) + m[1] + (m[2] << 8);
}

7926 IF NOT PEEK (n+1) THEN LET c=PEEK (n+3)+256*PEEK (n+4): RETURN
7927 LET c=2*(.5+(PEEK (n+2) AND 127)/256+PEEK (n+3)/65536+PEEK (n+4)/16777216+PEEK (n+5)/4.2949673e9)*2^(PEEK (n+1)-129): IF PEEK(n+2)>127 THEN c=-c:RETURN

ver:

Binary numbers – floating point conversion

PS. Primeira função de  C e rotina de Basic de Daniel A. Nagy e 2a rotina de C, Slavo Labsky.