Minilop Retroware

Para jogos de ZX Spectrum feitos com MPAGD · Brevemente

Faz o jogo de ZX Spectrum que sempre imaginaste.

O MPAGD põe o teu jogo a funcionar. O Minilop Power Desk leva-o o resto do caminho: mundos maiores, sprites do tamanho de um chefe final, música e efeitos sonoros, e uma cassete que carrega como deve ser. Uma ferramenta para Windows, brevemente.

  • Mete mais no teu jogo. Passa os ecrãs para os bancos de 128K e liberta milhares de bytes.
  • Cria chefes finais. Sprites grandes feitos de várias peças que se movem como uma só.
  • Conta uma história mais longa. Junta várias fases numa só cassete.
  • Escreve com confiança. Um editor de scripts que verifica o teu código enquanto escreves.

Ver o que faz

Uma ferramenta independente. Não é feita nem suportada pelo autor do MPAGD.

Para onde vai a memória, depois de usar bancos

Distribuição ilustrativa, não uma compilação medida. No Cocoa 3, mover os ecrãs para bancos libertou cerca de 5.200 bytes de memória principal.

O que pode fazer com o Power Desk?

Cria jogos maiores

Bancos de memória de 128K, uma visão clara de para onde vai cada byte e várias fases numa só cassete.

Dá ao teu mundo espaço para crescer. Os teus ecrãs passam para os bancos livres de 128K e são paginados à medida que o jogador anda, por isso cabem nível atrás de nível.
Faz um jogo em capítulos. Compila cada fase como um jogo MPAGD à parte e junta-as numa só cassete, levando vidas, pontuação, chaves e as variáveis que escolheres de uma fase para a outra.
Fica só com o motor que o teu jogo realmente usa. Liga a pasta do teu motor MPAGD, aplica a cópia reduzida com uma cópia de segurança e volta a qualquer versão anterior.
Vê exatamente para onde vai cada byte. Um mapa colorido da memória principal e um cartão para cada banco de 128K, para saberes o que podes gastar antes da próxima grande ideia.
Um indicador em direto em todas as páginas. Vê quanto espaço resta na memória principal e em cada banco sem sair do que estás a fazer.
Descobre os ecrãs que abrandam o teu jogo. O Desk corre a tua compilação num emulador, mede o tempo de cada ecrã, ordena-os, aponta os maiores custos e compara com uma referência guardada.
Compilações de 48K
Nem todos os jogos precisam de 128K. Gera uma cassete para um jogo de 48K, com o teu carregador e o teu ecrã de carregamento, pronta para a máquina clássica.

Cria melhores sprites

Sprites com máscara, grandes chefes e caixas de colisão justas.

Sprites que fazem parte da cena, não de um quadrado com a cor do fundo. Cada frame pode ter uma máscara, guardada nos bancos livres.
Definições de sprites com máscara
Ajusta o aspeto das tuas máscaras: um halo de 0 a 3 pixels, um limite de máscara, fecho de pequenas falhas e máscara também para objetos.
Cria um chefe inesquecível. Um sprite principal e até três peças, como 2 por 2 sprites de 16 por 16, movem-se e desenham-se em conjunto sem cortes, com colisão opcional da forma inteira para paredes e acertos.
Chega de morrer por causa de um sprite que nunca te tocou. Desenha uma caixa de colisão mais justa para qualquer imagem de sprite, até uma diferente para cada frame de animação.
Faz um inimigo piscar quando é atingido. Um sprite alterna entre duas cores enquanto uma das suas variáveis tiver um valor à tua escolha, com até quatro regras.
Localizador de dados de sprites
Dá a cada sprite as suas próprias definições em cada ecrã, como o comprimento de uma corda ou o trajeto de uma plataforma, e deixa-o lê-las sozinho sem contar através dos ecrãs anteriores.
Cores do jogador
Faz o jogador piscar quando é ferido e cintilar em cores do arco-íris enquanto está invulnerável, com o fundo reposto à medida que se move.

10 em 10 em gráficos

Scroll, efeitos e rotinas prontas que ativas com uma seleção, cada uma com o seu número USER.

Acrescenta funcionalidades sem programar. Assinala o que queres numa biblioteca de rotinas prontas, agrupadas por categoria. O Desk escreve o teu user.asm, mostra um mapa de números USER e avisa sobre números que nada trata.
Scroller vertical Lab
Voa pelo teu mapa acima. A janela de jogo desloca-se para baixo, de forma suave e sem cortes, com sprites com máscara. Move-se em pequenos passos, com uma cor por janela.
Scroller horizontal Lab
Desloca o ecrã para os lados, só para a direita, só para a esquerda ou para ambos, de forma suave e sem cortes, com sprites com máscara. Move-se em pequenos passos, com uma cor por janela.
Scroller em quatro direções Lab
Desloca uma grelha de ecrãs para cima, para baixo, para a esquerda e para a direita. Move-te em passos de 8 pixels (uma célula inteira, com cor completa), ou de 4 ou 2 pixels para um movimento mais suave. Cada bloco mantém a sua própria cor. Só em 128K.
Deixa os teus heróis passar por trás do cenário, como árvores, pilares e portas, mesmo com sprites com máscara.
Blocos animados
Dá vida ao cenário. Blocos escolhidos percorrem os um a três blocos seguintes onde quer que sejam desenhados, para tapetes rolantes, tochas e água, com velocidade e direção que podem seguir uma variável.
Escuridão com arcos de tocha Lab
Apaga as luzes. Ilumina um círculo à volta do jogador, ou meio círculo que acompanha a direção para onde ele olha.
Transições de ecrã
Muda de cena com estilo. Transições em persiana, triângulo, quadrado, círculo e retângulo, numa cor à tua escolha, opcionalmente depois de imagens de cutscenes.
Objetos intermitentes e arco-íris
Faz com que os itens a apanhar sejam impossíveis de falhar. Os objetos piscam entre branco e a sua própria cor, ou percorrem uma lista de cores.
Texto em rolagem
Faz a tua história subir pelo ecrã. Uma sequência de mensagens sobe numa janela uma linha de pixels de cada vez, ao estilo do texto deslizante de uma introdução de filme.
Sangue a secar
Deixa a tua marca no mundo. Poças de tinta colorida sobre blocos vazios secam de volta à cor do bloco, das margens para o centro.
Nove rotinas de Jonathan Cauldwell
Nove rotinas clássicas prontas a assinalar: animated fodder, fade, merge room, reset objects and variables, lives counter effect, rotational movement, texto de 64 colunas e ColdSnap Audio.

Acrescenta música e efeitos sonoros

Música e efeitos AY, com ferramentas para criar ambos.

Dá uma banda sonora ao teu jogo. Junta músicas Vortex Tracker II ou ProTracker 3, tocadas a partir da interrupção de frame e controladas a partir do teu script por uma só variável.
Escreve tu mesmo a melodia. Compõe e edita músicas PT3 dentro do Desk, com uma linha temporal da música em arrastar e largar. Mais simples do que o Vortex Tracker II.
Continua a usar SOUND n, agora com verdadeiros efeitos AY. Junta bancos do AY Sound FX Editor e escolhe que canais do chip os efeitos podem pedir emprestados.
Desenha os teus próprios lasers e explosões. Desenha um efeito frame a frame, parte de predefinições, ouve uma pré-visualização e junta-o ao teu jogo com um clique.
Importação MIDI e exportação WAV
Parte de um ficheiro MIDI. Transforma-o num primeiro arranjo no tracker e exporta um WAV para pré-visualizar ou partilhar.
Compactação de canções
Mete mais músicas no banco com a compressão ZX7 opcional. Vem desativada por predefinição.

Cria ecrãs belíssimos

As regras de cor do Spectrum são aplicadas por ti.

Faz um carregador que seja teu. Edita o carregador BASIC, escolhe o teu próprio ecrã de carregamento e o nome do ficheiro da cassete, e junta uma mensagem e uma espera por tecla.
Conta a história em imagens de ecrã inteiro a partir de ficheiros .scr, PNG, JPG ou GIF. Cada uma pode esperar por uma tecla ou temporizar-se sozinha.
Desenha um ecrã de carregamento que respeita as regras do Spectrum. Um editor de 256 por 192 pixels que cumpre por ti os limites de cor.
Larga uma imagem e move-a por aí. As imagens PNG, JPG ou GIF entram como camadas móveis ajustadas às cores do Spectrum.
Põe palavras nos teus ecrãs em qualquer tipo de letra do Spectrum. Uma ferramenta de texto com seletor de tipos de letra, ficheiros de fontes .ch8 e um editor de fontes integrado.

Escreve melhor código MPAGD

Um editor para events.a00 a a20 e events.msg que conhece o MPAGD.

Um editor de código que conhece o MPAGD. Edita events.a00 a a20 e events.msg com cores de sintaxe, dobragem, anular por ficheiro e uma gravação cuidadosa que só escreve o que mudou.
Pré-visualizações ao passar o rato
Passa o rato para ver. Aponta para uma imagem, bloco, ecrã, objeto, cor ou número USER para ver a que se refere.
Renumerar imagens de sprites
Elimina ou insere uma imagem de sprite e todos os números IMAGE nos teus scripts são atualizados, com pré-visualização e anulação.
Inserir rotina de utilizador
Escolhe uma das tuas rotinas de utilizador numa lista e a respetiva linha USER é acrescentada por ti.
Diálogo de gravação cuidadosa
Grava com confiança. Cada passo é mostrado (verificar, procurar alterações externas, cópia de segurança, escrever, histórico) e o que foi gravado fica listado.
Barra de procura e substituição em tudo
Encontra tudo depressa. Cada correspondência fica realçada e podes percorrê-las, ou procurar e substituir em todos os scripts, só no código ou só nos comentários.
Sugestões de comandos e ajuda
Nunca mais te esqueças de um comando. Uma lista instantânea de comandos MPAGD mostra como se escreve cada um e acompanha o contexto.
Vê onde tudo é usado. Todos os sítios onde aparece uma variável, número USER, mensagem ou comando, com contagens.
Revisão do jogo
Uma verificação de saúde para o jogo todo. Verificações em todos os scripts e no ficheiro do jogo, por exemplo para variáveis nunca definidas ou ecrãs a que o jogador não consegue chegar.
Dá às variáveis e aos tipos de sprite nomes fáceis de memorizar, que aparecem no editor e nos relatórios sem alterar os teus scripts. Copia etiquetas de outro projeto aberto.
Scripts de rascunho e biblioteca de scripts
Experimenta ideias sem risco. Os scripts de rascunho nunca fazem parte do jogo, e a Library partilhada guarda os teus excertos.
Comparar scripts
Mostra o mesmo script de dois projetos lado a lado, com botões para copiar linhas de um para o outro.
Verificador de scripts
Apanha erros antes do compilador. Erros e avisos aparecem enquanto escreves, seguindo as regras do compilador. Concordou com o compilador real em 22 ficheiros de eventos, 99 falhas feitas à mão e 1350 cópias danificadas aleatoriamente. O compilador continua a ter a palavra final.
Separador de mensagens
Move, insere ou elimina mensagens e todas as referências são renumeradas, com pré-visualização antes.

Conhece o teu jogo

Análise só de leitura, mais algumas ferramentas cuidadosas que reescrevem o projeto.

O teu jogo num relance. Uma primeira página com a imagem do teu jogo e os seus números: ecrãs, sprites, blocos e mais. Cada mosaico abre o separador correspondente.
Vê o teu mundo inteiro. Cada ecrã é desenhado a partir dos teus blocos e disposto como no teu mapa MPAGD, com sprites, objetos e margens, e exportação para PNG.
Sabe onde está tudo. Vê onde cada sprite e objeto está colocado ou surge, e quais parecem não ser usados.
Vê que blocos merecem o seu lugar. Quantas vezes cada bloco é usado, com um filtro para blocos usados menos de um certo número de vezes.
Combina o melhor de dois jogos. Gera um novo .agd a partir das partes de dois ficheiros de jogo, por exemplo para trazer ecrãs de uma fase para outra, com verificações.
Documentação com um clique. Um README e folhas de imagens de cada bloco e de cada frame de sprite.

Trabalhar com o teu projeto

A aplicação de ambiente de trabalho para Windows e os auxiliares à sua volta.

Da compilação à cassete com um clique. Gera um .tap com um carregador BASIC editável, pronto a carregar. Diz claramente quando o ficheiro principal não é um jogo compilado.
Ajuda mesmo onde estás. Um botão ? em todas as páginas (ou F1) abre o guia do utilizador na parte correspondente à página em que estás, em inglês, espanhol e português.
Idiomas
Inglês, espanhol e português europeu em todas as páginas, nas mensagens do verificador de scripts e no painel de ajuda.
Separadores de projeto
Mantém vários jogos, ou várias fases de um mesmo jogo, abertos ao mesmo tempo.
Configuração guiada do projeto
Começa um projeto num minuto. Uma janela pergunta o nome, 128K ou 48K, e a tua pasta MPAGD uma só vez. O Desk encontra sozinho o motor, a pasta de compilação e o build.bat.
Cópias de segurança e pasta de projetos do Desk
Experimenta sem medo. São feitas cópias datadas dos ficheiros do teu projeto antes de alterações arriscadas, com restauro e zip. Save project guarda versões anteriores numa pasta backups.
Nunca percas uma boa ideia. Uma lista de ideias, erros e tarefas em cada projeto, guardada no ficheiro do projeto.
Testar o jogo
Joga antes de lançares. A tua cassete carrega num emulador dentro da página, como uma máquina de 48K ou 128K.
Configuração da pasta do jogo
Uma casa arrumada para cada jogo. Cria uma estrutura de pastas (DevEnvironment, Code and UserRoutines, Art, Music, Tapes) onde quiseres, com o conselho de ter um MPAGD por jogo.
A tua página de projeto
Liga uma só vez os ficheiros e pastas que o MPAGD escreve, e o Desk volta a ler as cópias mais recentes sempre que compilas.
Biblioteca
Uma pasta partilhada de canções, efeitos, ecrãs e scripts para todos os teus projetos, com autores que podes pesquisar.
Usa o teu próprio emulador
Preferes o teu? Escolhe o teu emulador de Spectrum em Preferences e depois abre nele a cassete gerada com um clique.
Guardar e abrir projeto
Um único ficheiro de projeto contém os teus ficheiros, canções, efeitos, imagens e todas as definições.
Faz uma visita guiada
Um breve percurso guiado pelas secções principais para utilizadores novos, em inglês, espanhol e português.
Lista de novidades
Notas em linguagem simples de cada versão, no menu do utilizador.
Aspetos (temas)
Faz com que seja teu. Esquemas de cores Classic, ZX Spectrum homage, Midnight ou Focus. Apenas cosmético.
Aplicação de ambiente de trabalho para Windows
O Desk na sua própria janela, com acesso direto às pastas que escolheres, sem pedidos de permissão e com um número de versão ao lado do logótipo.

Para onde vão os bytes: o Cocoa 3 como exemplo

O Cocoa 3 encheu a memória do MPAGD, e foi daí que o Power Desk nasceu. Aqui está onde ele pode devolver espaço e o que fez pelo Cocoa 3, onde o medimos.

Parte do jogoNormalmenteCom o Power DeskNo Cocoa 3
Ecrãs dos níveisOs dados comprimidos dos ecrãs ficam na memória principal.Passam para os bancos livres de 128K e são paginados à medida que o jogador anda.Foram movidos 5744 bytes de dados de ecrãs, libertando cerca de 5200 bytes de memória principal.
Máscaras de spritesCada frame com máscara ocupa 384 bytes de memória principal.Guardados num banco livre, 42 frames por banco, copiando-se apenas o que cada sprite em movimento precisa.Nenhum dado de máscara fica na memória principal. Cerca de 7 a 9 por cento mais de tempo nos testes.
Música e efeitos sonorosAs músicas e os efeitos competem com o jogo pela memória.As músicas e os efeitos ficam num banco livre. Só o leitor fica na memória principal.O leitor PT3 ocupa cerca de 260 a 300 bytes de memória principal.
Código do motorO motor MPAGD inteiro está incluído, seja usado ou não.O Engine Trimmer remove as rotinas que o teu jogo nunca chama, a partir da tua própria cópia do motor.Estimado a partir do ficheiro do teu jogo, exato a partir do .asm compilado.
Rotinas de utilizadorCada rotina que acrescentas ocupa espaço.Só as rotinas que assinalas são escritas em user.asm, cada uma com o seu custo à vista.Depende das rotinas escolhidas.
O jogo inteiroUm só programa tem de conter todos os níveis.Divide um jogo grande em fases, cada uma o seu próprio jogo MPAGD, juntas numa só cassete.Cada fase tem uma memória completa só para si.

Criado porque um jogo precisava dele

O MPAGD põe um jogo a funcionar rapidamente. À medida que o jogo cresce, as tarefas à sua volta levam o tempo: ficar sem memória, descobrir o que não está a ser usado, manter os scripts arrumados, acrescentar música e gerar uma cassete que carregue bem. O Power Desk começou com o Cocoa 3 e cresceu com os problemas que esse jogo foi encontrando.

Compilas no MPAGD como sempre. O Desk lê o resultado e a pasta onde vive o teu projeto. Não substitui o MPAGD, e só escreve na pasta do teu projeto quando lho pedes, fazendo antes uma cópia de segurança com data.

Como se encaixa com o MPAGD

  1. PrepararArrasta e larga as funcionalidades de que precisas e cria o teu ficheiro User Routine sem programar. Mais de 30 rotinas para experimentares.
  2. Compilar no MPAGDO Power Desk trabalha lado a lado com o MPAGD e melhora o teu jogo MPAGD.
  3. Acrescentar os extrasMúsica, efeitos sonoros, imagens de cutscenes e um ecrã de carregamento, prontos a correr.
  4. Gerar a casseteO Desk gera o .tap com um carregador que podes editar. Cria até jogos com várias fases, combinando vários ficheiros .tap para alargar a jogabilidade.
  5. Testar e descarregarCorre-o no emulador integrado e depois descarrega o .tap. Produção profissional num instante.

Veja-o em ação

Vídeos de demonstração da beta do Power Desk. Cada um só é carregado a partir do YouTube quando carrega em reproduzir.

Criar um jogo com várias fases

Vários jogos MPAGD juntos numa só cassete, com valores transportados de fase para fase.

Scroll em quatro direções, prova de conceito

Uma primeira olhadela ao scroll em quatro direções.

Shoot 'em up de scroll horizontal

Um shooter de scroll lateral feito em MPAGD com o Power Desk.

Demo de shoot 'em up com scroll

Uma demonstração mais longa de um shoot 'em up com scroll.

Sprites grandes e combates com chefes

Sprites do tamanho de um chefe em MPAGD.

Blocos animados

Blocos que se animam no jogo.

Andar por trás dos blocos

O jogador a andar por trás do cenário.

Melhorar o Cocoa and the Time Machine

Uma demonstração completa de como melhorar um jogo existente com o Power Desk.

Lista de reprodução completa no YouTube

Créditos

O Power Desk assenta no trabalho de outros. Os seus avisos são mantidos no código-fonte gerado e na aplicação.

MPAGD de Jonathan Cauldwell. O Desk lê a sua saída. Nove rotinas vêm da sua coleção.

ZX7, formato e descodificador de Einar Saukas.

Reprodutor PT3 de Sergey Bulba, adaptado por Stefan Bylund (MIT).

Formato AYFX de Shiru (AY Sound FX Editor).

JSSpeccy 3 de Matt Westcott (GPL-3.0), usado para Testar o jogo.

CodeMirror 6 e Lezer de Marijn Haverbeke e colaboradores (MIT).

z80-emulator de Lawrence Kesteloot (MIT), usado no AY Tracker.

Tipos de letra Press Start 2P, IBM Plex Mono, Manrope e Plus Jakarta Sans, sob a SIL Open Font Licence 1.1.

O sjasmplus é referido mas não está incluído.