FPGA conectado à máquina de pinball domina pontuações mais altas

Como você preserva pontuações altas em um antigo gabinete de fliperama ao desconectar a energia?É possível injetar novas pontuações mais altas em uma máquina de pinball?Foi o enredo B de um episódio de Seinfield, então deve valer a pena fazê-lo, levando [Matthew Venn] pela toca do coelho dos FPGAs e mapas de memória para criar novas pontuações mais altas em uma máquina de pinball.

A máquina em questão para este experimento é Doctor Who da Williams, que, apesar de ser uma máquina de pinball Doctor Who, não é uma máquina tão boa.Ainda assim, Daleks.Esta máquina é alimentada por um Motorola 68B09E rodando a 2MHz, com 8kB de RAM no endereço 0x0000.Esta RAM é apoiada por algumas baterias AA e, felizmente, está em um soquete DIP, permitindo que [matthew] fabrique uma placa carregada com uma placa de desenvolvimento FPGA que fica entre a CPU e a RAM.

A técnica básica para interceptar e escrever uma nova pontuação máxima para esta máquina de pinball vem do incrível [sprite_tm] que está twittando pontuações máximas de um gabinete de 1943.A ideia é simples: basta fazer um FPGA observar um endereço de memória específico e enviar alguns dados para um computador quando os dados nesse endereço forem atualizados.Para a máquina de pinball Doctor Who, isso é um pouco mais difícil do que parece: os dados não são armazenados em hexadecimal, mas compactados em BCD.Depois de um pouco de trabalho, porém, [matthew] conseguiu escrever novas pontuações máximas a partir de um script Python executado em um laptop.Todo o código (e mais alguns detalhes) está no Github

Estender jogos de arcade explorando linhas de endereço e dados não é algo que vemos muito, mas foi feito, principalmente com a Igreja de Robotron.Aqui, alguns hacks do MAME transformam um jogo de Robotron em uma Igreja para os fiéis se comprometerem totalmente com o salvador do mundo, que chegará em 66 anos e salvará os humanos restantes do apocalipse dos robôs.Este hack de uma máquina de pinball Doctor Who vai além de uma versão modificada do MAME, e se algum dia vamos fazer uma capela de verdade com um jogo real de Robotron, essas são as técnicas que usaremos.

Poucos dias atrás, houve uma história sobre o uso de FRAM no Sega Saturn para preservar jogos salvos.O mesmo poderia funcionar aqui também.

minha máquina é um Dr Who, mas na verdade foi o Fire Power do meu amigo Stuarrrt que testamos.Acho que vai funcionar no meu, mas primeiro tenho que dessoldar a SRAM!

A maioria dos jogos tem seu código sem EPROMs.Use um analisador lógico observando endereços, dados e sinais de controle para descobrir onde estão as pontuações mais altas na RAM e, em seguida, escreva um pequeno programa para inserir o valor desejado na área da RAM.Grave o programa em uma EPROM adequada e troque-o para uma execução.Em seguida, substitua a EPROM original para que o jogo volte ao normal.Demora um pouco para implementar, mas funciona perfeitamente.E não, não vou dizer como ou onde verifiquei isso:) .

Por que passar por tudo isso para salvar uma pontuação alta?Basta instalar uma NVRAM e pronto.Essa é uma solução fácil para todas as placas Williams WPC MPU.O que há com a foto?Isso nem é um Doctor Who MPU retratado.É uma placa de substituição Rottendog MPU327-4 para Williams 3,4,6.Possui NVRAM e nunca perderá memória.

A memória RAM da placa mpu de poder de fogo para esse intervalo é uma unidade de 256x4 bits que eles escolheram endereçar no nybble inferior e deixar o nybble superior puxado para cima - então o HSTD padrão seria armazenado F5 F5 F0 F0 F0 F0.As máquinas de pinball contemporâneas de outros fabricantes para poder de fogo que também usavam o aríete 5101 teriam o mesmo problema, mas Bally (por exemplo) optou por ativar o nybble superior e deixar o inferior como F.

Eles devem ter uma RAM com largura total de bytes em algum lugar no espaço de endereço, caso contrário você não poderia colocar um endereço na pilha e retornar a ele.Alguns outros sistemas embarcados nos quais eu costumava trabalhar usavam RAM ampla, mas precisavam de dois acessos para buscar o byte completo.A CPU viu apenas um único ciclo de barramento.

Eles fazem.O endereço de $ 0000 a $ 00FF tem largura total com 6810 ou 5114 ou em combinação internamente em um 6802. O armazenamento nybble 5101 de $ 0100 a $ 01FF é para a parte com bateria, pois é uma parte com menor consumo de energia.

“que, apesar de ser uma máquina de pinball Doctor Who, não é uma máquina tão boa” O quê????Médico que é uma ótima máquina, não é um monstro ou Mágico de Oz, mas é uma máquina sólida e amada pela comunidade de pinball

Concordo.De todas as centenas de máquinas de pinball que joguei.Doctor Who é consistentemente o mais divertido de jogar, na minha opinião.

Huh, isso foi uma merda… depois que fiz aquele hack na máquina local do Hackerspaces 1942, também fiz algo semelhante com a máquina de pinball que adquiri.Que é uma máquina Williams Dr. Who.Eu simplesmente não usei um FPGA, mas criei algo com travas, um AVR (eu acho) e algum SBC Linux que pudesse funcionar sem fio.

Além disso, discordo que o Dr. Who não seja tão bom.Na verdade, é muito bom para a capacidade de reprodução, na minha opinião.

Ao utilizar o nosso website e serviços, concorda expressamente com a colocação dos nossos cookies de desempenho, funcionalidade e publicidade.Saber mais


Horário da postagem: 29 de agosto de 2019
Bate-papo on-line pelo WhatsApp!