segunda-feira, 30 de julho de 2012

Highway Encounter e Speedlock 1

Desta vez eu estou apresentando o esquema de proteção Speedlock 1, na adaptação do jogo Highway Encounter. A série Speedlock é bastante famosa e empregada em numerosos jogos.


domingo, 29 de julho de 2012

Quazatron e a proteção do carregador BASIC

Na postagem anterior mostrei uma técnica de proteção de programa BASIC, que consiste em camuflar os valores reais de constantes numéricas. O jogo Quazatron é um  que faz uso desta artimanha. Ao carregar o programa e interrompendo sua execução, obtém-se a listagem: 


Obviamente os valores numéricos são falsos, pois estão todos zerados.

sábado, 28 de julho de 2012

Proteção de programas em fitas: constantes numéricas

Eu já tive oportunidade, na série sobre adaptação de jogos para disquetes Beta 48, mencionar sobre proteção de programas BASIC contra listagem. Na ocasião, recomendei o uso do utilitário STK para poder carregar e listar tais programas. O que eu não tinha dito é que existe uma forma de proteção que não pode ser contornada pelo STK. 

Fonte: Wikipédia

Para ter uma ideia de como isto funciona, digite no TK90X ou emulador a seguinte linha BASIC e rode com RUN:

10 PRINT 0

Como esperado, observa-se que aparece impressa na tela o número 0. Agora digite a seguinte linha:

POKE PEEK 23635+256*PEEK 23636+10,1

e faça um LIST. Aparentemente o programa BASIC não mudou nada. Rode o programa, e... surpresa! Não aparecerá na tela o número 0, mas um outro valor! Como isso seria possível?

sexta-feira, 27 de julho de 2012

Ad Astra para Beta 48

Além do Zzoom, abordado em postagem recente, outro shoot 'n' up que joguei bastante em meu TK90X no passado e que gosto bastante é Ad Astra.


quinta-feira, 26 de julho de 2012

Jogos 3D Isométricos vol. 1

Eu iniciei uma nova compilação de jogos para TK90X em disco Beta 48, que têm em comum os gráficos serem tridimensionais com perspectiva isométrica, conhecida também como "jogos Filmation" devido ao Knight Lore da Ultimate

Neste volume de estréia, há os seguintes jogos: Ant Attack, Batman, Enigma Force, Fairlight, Glider Rider, The Great Escape, Greyfell, Gyroscope, Head Over Heels, Movie, Pyracurse, Rogue Trooper, Sweevo's World e Wolfan. 


quarta-feira, 25 de julho de 2012

Zzoom

Na revista Jogos 80 fiz um review sobre o jogo Zzoom e, para isso, transferi este jogo para disquete Beta 48.


terça-feira, 24 de julho de 2012

Sobre 1984...

Eu já li o livro 1984: A Febre dos Videogames Continua do amigo Marcus Garrett (Garrettimus), mas não cheguei a fazer um comentário sobre esta obra como já havia prometido. Depois do excelente artigo do César Cardoso na revista Jogos 80 nº 9, creio que não há necessidade de uma nova resenha, pois fui mais que contemplado em todas as observações feitas. Só posso dizer isso: os livros 1983 e 1984 são indispensáveis para os amantes dos videojogos clássicos.


Revista Jogos 80

Saiu hoje a 9ª edição da revista eletrônica Jogos 80, de julho de 2012, com destaque aos 30 anos do ZX Spectrum.


domingo, 22 de julho de 2012

Pyracurse

Mais um jogo para TK90X foi adaptado para a Beta 48, desta vez é Pyracurse. Eu achei algo interessante na listagem do carregador BASIC deste programa.


sexta-feira, 20 de julho de 2012

quinta-feira, 19 de julho de 2012

TZX Show

Na série sobre adaptação de programas de fita para disco Beta 48, foram discutida as vantagens de usar o emulador no PC. Dentre os formatos empregados para representar o conteúdo de fita cassete no PC, TZX é o preferido por ser o mais completo e versátil. Embora seja possível inserir arquivo TZX no emulador e operar como no TK90X real, a possibilidade de trabalhar nativamente no PC aumenta a produtividade. Como não existem muitos utilitários para o Linux, sistema operacional que tenho adotado, resolvi escrever o TZX Show que roda com interpretador Ruby. Esta linguagem foi empregada no TXDOS também.

Fonte: Wikipédia
Atualização: o World of Spectrum acabou de aceitar este programa em seu repositório.

quarta-feira, 18 de julho de 2012

Adaptação de jogos de fita para Beta 48 (parte 8)

Hoje eu fiz a adaptação de Rogue Trooper para o Beta 48 e, como venho elaborando uma série mostrando como se faz isto, aproveito para apresentar mais uma técnica. Deste vez abordarei como usar visualizador de memória do emulador Fuse. Apesar de mostrar o procedimento neste emulador, outros dotados de um debugger poderão ser usados.


terça-feira, 17 de julho de 2012

Adaptação de jogos de fita para Beta 48 (parte 7)

Continuando a adaptação do Sanxion 128k, um decodificador foi quebrado e a listagem da rotina de carregamento da fita tornou-se disponível. Fazendo um disassembly desta rotina que começa em 64896, há várias operações envolvendo principalmente a tela. O que realmente interessa é o carregamento da fita, que se inicia no seguinte trecho:
64952   LD IX,16384
64956   LD DE,6912
64959   CALL 65325
64963   LD IX,23808
64966   LD DE,40960
64969   CALL 65325
64972   LD HL,64986
64975   LD DE,23776
64978   LD BC,32
64981   LDIR
64983   JP 23776


segunda-feira, 16 de julho de 2012

Adaptação de jogos de fita para Beta 48 (parte 6)

Até a parte anterior apresentamos procedimentos como se fosse efetuados em um TK90X real, os quais valem também para qualquer emulador. Na sequência, estaremos cada vez mais explorando os programas que têm algum esquema de proteção de gravação em fita, que exige cada vez mais análise de disassembly e eventualmente criar algumas rotinas em assembly. Torna-se então necessário interromper código de máquina durante sua execução, para analisar o disassembly ou fazer outras operações. 

Nas épocas "heroicas" em que não existiam PC com emulador, eram usados monitores de código de máquina e disassemblers e a imbatível Multiface 1 com o programa Genie. Para aumentar o "heroísmo", impressora não era coisa de pobre, portanto éramos obrigados a copiar as listagens à mão numa folha de papel (eu tinha muitas listagens que, infelizmente, foram descartadas antes de me mudar para Curitiba). 

Hoje a realidade é diferente, podemos usar todo o poder de processamento e armazenagem de PC moderno. O que substitui - com vantagens - a Multiface 1 é o monitor e debugger dos emuladores. Eu estarei mostrando os exemplos no Fuse, pois é o que utilizo mais, porém existem vários outros, como o excelente SpecEmu disponível na webpage do José Roberto que emula também a interface CBI-95 e a Multiface 1. Apesar de ter tido alguns problemas em versões mais antigas, a versão 1.5.0 do Wine consegue rodar o SpecEmu no Linux


domingo, 15 de julho de 2012

Adaptação de jogos de fita para Beta 48 (parte 5)

Dando sequência a esta série, eu estarei mostrando como adaptar jogos de fitas protegidas para disquetes Beta 48. Um conhecimento de código de máquina e assembly Z80 será requisito obrigatório no acompanhamento desta parte. Os comandos BASIC para carregar programas e dados da fita cassete podem ser facilmente pirateados, por isso os desenvolvedores de jogos foram criando diferentes esquemas de proteção. 

Para cada dado salvo através do SAVE do BASIC, existem dois blocos de dados armazenados na fita, separados por um pequeno intervalo de tempo. O primeiro bloco, chamado de cabeçalho (header), contém dados como tipo (BASIC, DATA ou CODE), comprimento e outros dados dependendo do que está gravado. O bloco seguinte contém os dados propriamente ditos que serão lidos e armazenados na RAM (bloco de dados). Tanto um bloco de cabeçalho como de dados são compostos por um byte leader, seguido dos bytes a serem carregados e, por fim, um byte de paridade. Por exemplo, um bloco de 6912 bytes estará armazenado na fita como uma sequência de 6914 bytes. O byte leader, que é o primeiro, não é carregado na RAM mas simplesmente conferido por especificar o tipo de bloco (0 para cabeçalho e 255 para dados). O 2º ao 6913º bytes são lidos e carregados de fato na memória. Por fim o último byte, de paridade, não é gravado na RAM, mas serve simplesmente para detectar algum eventual erro que possa ter ocorrido. Maiores detalhes podem ser vistos neste artigo do TK-WIKI. 

Como o BASIC só admite gravações em fita conforme descrito acima, basta alterar qualquer um desses detalhes na gravação que tornará o bloco irreconhecível a não ser por linguagem de máquina. O Cybernoid II será usado como exemplo para ilustrar esta técnica. 


sábado, 14 de julho de 2012

Adaptação de jogos de fita para Beta 48 (parte 4)

Na parte 3, o jogo Motos teria sido adaptado para funcionar em disquete Beta 48. Só que ficou faltando um detalhe: como ter acesso à listagem do programa carregador em BASIC? A resposta mais simplista seria pressionar BREAK antes que ocorra o carregamento do bloco seguinte. Assim, o programa seria interrompido e o seu conteúdo seria disponível para listagem e edição. 


sexta-feira, 13 de julho de 2012

Adaptação de jogos de fita para Beta 48 (parte 3)

Na parte 2 eu prometi comentar os esquemas de proteção de jogos gravados em fitas cassetes mas, como interlúdio, abordarei um assunto igualmente importante: o consumo de memória. 


quinta-feira, 12 de julho de 2012

Adaptação de jogos de fita para Beta 48 (parte 2)

Na parte 1 dei o ponta-pé inicial falando sobre a correspondência de comandos entre o BASIC do TK90X e o DOS Beta (ou TRDOS). Entretanto estamos longe de termos adaptado algum jogo, pois os arquivos devem ainda ser salvos no disco. As operações de discos são feitas na interface de linha de comando (prompt) da interface Beta 48:


quarta-feira, 11 de julho de 2012

Adaptação de jogos de fita para Beta 48 (parte 1)

Penso em começar uma série sobre adaptação de jogos para o Beta 48, após pedidos. A maior dificuldade está em começar, pois o início sempre traz muitas dúvidas e expectativas. Acredito que o melhor ponto de partida é discutir um pouco sobre o carregamento de fita cassete

Fonte: Wikipédia

segunda-feira, 9 de julho de 2012

domingo, 8 de julho de 2012

Final do Silkworm

A maior parte dos jogos de ação do TK90X, particularmente os shoot 'n' ups, são muito difíceis de serem concluídos. Isso faz com que sejam usadas medidas como POKEs de vidas, munições, energia, imunidade, etc, sejam empregadas para facilitar um pouco a vida do jogador. Porém no caso do Silkworm, nem é necessário usar POKE para terminá-lo.


sábado, 7 de julho de 2012

Mistério do Chase HQ para Beta 48

Eduardo Luccas tinha chamado atenção para o Chase HQ adaptado para Beta 48 pelo Otto Frederico. Ao contrário da maioria dos jogos multiloads adaptados, não havia distinção entre os tipos de interface (CAS ou CBI), pois funcionava perfeitamente em ambos. Outro efeito mencionado era que aparentemente o carregamento era mais rápido, com o cabeçote do drive executando menos movimentos.


sexta-feira, 6 de julho de 2012

Novo fórum: Sinclair Brasil

Daniel Lúcio fez convite para um novo fórum destinados aos fãs da linha Sinclair. Segue a mensagem do próprio.

Oi pessoal, tudo bem?

Gostaria de convidar-lhes a participar do fórum Sinclair Brasil.
Um fórum voltado a todos o micros da família Sinclair e similares ao redor do mundo.
O objetivo não é substituir as listas ou grupos e sim, somar-se a elas, sendo mais uma opção de comunicação e troca de conhecimentos e amizade.
Entendam o fórum como unificador daqueles que tem um gosto em comum (TKs, CPs, QL, ZX80/81, Spectrum e tantos outros), uma ferramenta moderna e descomplicada!
Antes de tudo, espero que seja uma experiência agradável e divertida,com vários recursos adicionais que não são possíveis em listas e grupos. As vantagens são inúmeras, mas nada melhor que o teste na prática, portanto, ficaria honrado se vocês se inscrevessem no endereço abaixo.

http://www.underwurlde.com/forum/

Essa é uma notícia em primeira mão, logo não estranhem, não tem quase ninguém, ou seja, é um fórum novinho, prontinho para ser estreado :P
Muito obrigado a todos e bom divertimento.

Daniel
PS- Se puderem repassar nas listas eu agradeceria.

Paperboy para Beta 48

Marcus Garrett postou na lista de discussão TK90X uma curiosa imagem de um veículo elétrico Sinclair C5 no jogo Paperboy para BBC Micro. Ele perguntou se nas versões para outros computadores ocorria o mesmo.  Era uma desculpa perfeita para que eu convertesse o jogo para Beta 48 no meu TK90X.


quinta-feira, 5 de julho de 2012

AY Games Volume 04

Depois de ir adaptando jogos do TK90X com músicas de PSG AY-3-8912 (Explorer) para rodar em disco Beta 48, consegui reunir o suficiente para compor mais um volume da coleção AY Games.


quarta-feira, 4 de julho de 2012

TXDOS no WOS

O programa TXDOS que elaborei foi aceito no World of Spectrum hoje, como consta neste link. Espero que seja útil para mais pessoas, agora que está com melhor disponibilidade e divulgação.


Bobsleigh

Desta vez adaptei o jogo Bobsleigh, com som para interface Explorer, para interface de drive Beta 48


segunda-feira, 2 de julho de 2012

Utilitário txdos.rb

O sistema operacional abençoado pelo Guilherme Henrique Portas Terceiro está bem servido de utilitários para interface de drive de disco Beta, como se pode verificar no World of Spectrum. A situação é bem diferente para o sistema operacional criado por um certo finlandês conhecido como Linus Benedict Torvalds. Embora existam soluções como o Wine ou DOSEMU para rodar programas não nativos no Linux, tem seus inconvenientes. Eu fui portanto obrigado a escrever um programa que me auxiliasse nas adaptações que tenho feito para Beta 48.

Comecei experimentando com a linguagem Python, mas logo acabei desanimando. Depois de procurar um pouco, encontrei Ruby que acabou sendo a linguagem com que me acostumei mais facilmente. A propósito, por coincidência a pedra do mês de julho é o rubi.

Fonte: Wikipédia

domingo, 1 de julho de 2012

JRR002: jogos multiloads para Beta 48

Na sequência da coleção de jogos multiloads para TK90X adaptados por José Roberto Rodrigues para disco Beta 48, eu apresento o 2º volume com os seguintes jogos:  Gemini Wing, Mercs e Super Wonder Boy