FPGA Jacked In Pinball Machine Masters Puntuaciones altas

¿Cómo se conservan las puntuaciones altas en un viejo gabinete de arcade cuando se desconecta la alimentación?¿Es posible inyectar nuevos puntajes altos en una máquina de pinball?Era la trama B de un episodio de Seinfield, por lo que tiene que valer la pena hacerlo, llevando a [Matthew Venn] por la madriguera del conejo de los FPGA y los mapas de memoria para crear nuevos puntajes altos 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 2MHz, con 8kB de RAM en la dirección 0x0000.Esta RAM está respaldada con algunas baterías AA y, afortunadamente, está en un zócalo DIP, lo que le permite a [Matthew] fabricar 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 un nuevo puntaje alto para esta máquina de pinball proviene del increíble [sprite_tm] que tuitea puntajes altos desde un gabinete de 1943.La idea es simple: solo haga que un 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 que se empaquetan en BCD.Sin embargo, después de un poco de trabajo, [mathew] pudo escribir nuevos puntajes altos desde un script de Python que se ejecutaba en una computadora portátil.Todo el código (y algunos detalles más) están en un Github

La extensión de los juegos de arcade al tocar las líneas de direcciones y datos no es algo que veamos mucho, pero se ha hecho, sobre todo con la Iglesia de Robotron.Aquí, algunos trucos MAME convierten un juego de Robotron en una iglesia para que los fieles se comprometan por completo con el salvador del mundo, que llegará en 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 verdadera capilla con un juego real de Robotron, estas son las técnicas que vamos a utilizar.

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 Fire Power de mi compañero Stuarrrt con la que probamos esto.¡Creo que funcionará en el mío, pero primero tengo que desoldar el SRAM!

La mayoría de los juegos tienen su código quedándose sin EPROM.Use un analizador lógico que observe la dirección, los datos y las señales de control para averiguar en qué parte de la RAM viven las puntuaciones más altas, y luego escriba un pequeño programa corto para insertar el valor que desea en el área de la RAM.Grabe el programa en una EPROM adecuada y cámbielo para una sola ejecución.Luego reemplace 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 verifiqué esto.:) .

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

El ram de la placa mpu de potencia de fuego para ese rango es una unidad de 256x4 bits que eligieron abordar en el nybble inferior y dejar el nybble superior elevado, por lo que el HSTD de stock 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 ram 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 byte completo en algún lugar del espacio de direcciones; de lo contrario, no podría insertar una dirección en la pila y volver a ella.Algunos otros sistemas integrados en los que solía trabajar usaban nibble wide RAM pero necesitaban dos accesos para obtener el byte completo.Sin embargo, la CPU solo vio un ciclo de bus único.

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 que 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, cientos de máquinas de pinball que he jugado.Doctor Who es consistentemente el más divertido de jugar en mi opinión.

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

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

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: Sep-02-2019
¡Chat en línea de WhatsApp!