FPGA conectado a Pinball Machine Masters puntuaciones altas

¿Cómo se conservan las puntuaciones altas en una máquina recreativa antigua al desconectar la alimentación?¿Es posible inyectar nuevas puntuaciones en una máquina de pinball?Era la trama secundaria de un episodio de Seinfield, por lo que vale la pena hacerlo, llevando [matthew venn] por la madriguera de los FPGA y los mapas de memoria para crear nuevas puntuaciones altas en una máquina de pinball.

La máquina en cuestión para este experimento es Doctor Who de Williams, que, a pesar de ser una máquina de pinball de Doctor Who, no es una máquina tan buena.Aún así, daleks.Esta máquina funciona con un Motorola 68B09E que funciona a 2 MHz, con 8 kB de RAM en la dirección 0x0000.Esta RAM está respaldada por algunas baterías AA y, afortunadamente, está en un conector DIP, lo que permite [matthew] crear una placa cargada con una placa de desarrollo FPGA que va entre la CPU y la RAM.

La técnica básica para interceptar y escribir una nueva puntuación alta para esta máquina de pinball proviene del increíble [sprite_tm] que está twitteando puntuaciones altas desde un gabinete de 1943.La idea es simple: simplemente haga que una FPGA mire una dirección de memoria específica y envíe algunos datos a una computadora cuando se actualicen los datos en esa dirección.Para la máquina de pinball de Doctor Who, esto es un poco más difícil de lo que parece: los datos no se almacenan en hexadecimal, sino empaquetados en BCD.Sin embargo, después de un poco de trabajo, [matthew] pudo escribir nuevos puntajes altos desde un script de Python que se ejecuta en una computadora portátil.Todo el código (y algunos detalles más) está en Github.

Extender los juegos de arcade aprovechando las líneas de direcciones y datos no es algo que veamos mucho, pero ya se ha hecho, sobre todo con la Iglesia de Robotron.Aquí, algunos hacks de MAME convierten un juego de Robotron en una Iglesia para que los fieles se comprometan plenamente con el salvador del mundo, que llegará dentro de 66 años y salvará a los humanos restantes del apocalipsis de los robots.Este truco de una máquina de pinball de Doctor Who va más allá de una versión modificada de MAME, y si alguna vez vamos a hacer una capilla real con un juego real de Robotron, estas son las técnicas que usaremos.

Hace unos días hubo una historia sobre el uso de FRAM en Sega Saturn para preservar las partidas guardadas.Lo mismo podría funcionar aquí también.

Mi máquina es una Dr Who, pero en realidad fue la Fire Power de mi amigo Stuarrrt la que probamos.¡Creo que funcionará en el mío, pero primero tengo que desoldar la SRAM!

La mayoría de los juegos tienen su código sin EPROM.Utilice un analizador lógico que observe direcciones, datos y señales de control para determinar en qué parte de la RAM se encuentran las puntuaciones más altas y luego escriba un pequeño programa breve para insertar el valor que desea en el área de la RAM.Grabe el programa en una EPROM adecuada y cámbielo para una ejecución.Luego reemplaza la EPROM original para que el juego vuelva a la normalidad.Lleva un poco de tiempo implementarlo, pero funciona bien.Y no, no voy a decir cómo ni dónde comprobé esto.:) .

¿Por qué pasar por todo esto para salvar una puntuación alta?Simplemente instale una NVRAM y listo.Esta es una solución fácil para todas las placas MPU Williams WPC.¿Qué pasa con la foto?Ni siquiera se muestra una MPU de Doctor Who.Es una placa de repuesto Rottendog MPU327-4 para Williams 3,4,6.Tiene NVRAM y nunca perderá su memoria.

La memoria RAM de la placa mpu de Firepower para ese rango es una unidad de 256x4 bits que eligieron abordar en el nibble inferior y dejar el nibble superior en alto, por lo que el HSTD original se almacenaría F5 F5 F0 F0 F0 F0.Las máquinas de pinball contemporáneas de otros fabricantes con potencia de fuego que también usaban el ariete 5101 tendrían el mismo problema, pero Bally (por ejemplo) elige activar el nybble superior y dejar el inferior como F.

Deben haber tenido una RAM de ancho de bytes completo en algún lugar del espacio de direcciones; de lo contrario, no se podría insertar una dirección en la pila y regresar a ella.Algunos otros sistemas integrados en los que solía trabajar usaban RAM de nibble, pero necesitaban dos accesos para recuperar el byte completo.Sin embargo, la CPU solo vio un ciclo de bus.

Ellas hacen.La dirección de $0000-$00FF es de ancho completo con 6810 o 5114 o en combinación internamente en un 6802. El almacenamiento nybble 5101 de $0100-$01FF es para la parte respaldada por batería, ya que es una parte que requiere menos energía.

“que, a pesar de ser una máquina de pinball de Doctor Who, no es una máquina tan buena” ¿Qué????Doctor Who es una gran máquina, no es Monster Bash o Wizard of Oz, pero es una máquina sólida y querida por la comunidad de pinball.

Estoy de acuerdo.De todos los pinball, he jugado cientos de máquinas de pinball.En mi opinión, Doctor Who es siempre el más divertido de jugar.

Eh, eso fue una locura… después de hacer ese truco en la máquina local de hackerspaces 1942, también hice algo similar con la máquina de pinball que compré.Que es una máquina Williams Dr. Who.Simplemente no usé un FPGA, sino que preparé algo con pestillos, un AVR (creo) y algo de SBC de Linux que podía funcionar de forma inalámbrica.

Además, no estoy de acuerdo con que el Dr. Who no sea tan bueno.En mi opinión, es bastante bueno en términos de rejugabilidad.

Al utilizar nuestro sitio web y nuestros servicios, usted acepta expresamente la colocación de nuestras cookies de rendimiento, funcionalidad y publicidad.Aprende más


Hora de publicación: 02-sep-2019
¡Chatea en línea por WhatsApp!