Hoe behoud je hoge scores in een oude arcadekast als je de stroom uitschakelt?Is het mogelijk om nieuwe highscores in een flipperkast te injecteren?Het was de b-plot van een aflevering van Seinfield, dus het moet de moeite waard zijn om [Matthew Venn] door het konijnenhol van FPGA's en geheugenkaarten te leiden om nieuwe topscores in een flipperkast te creëren.
De machine in kwestie voor dit experiment is Doctor Who van Williams, die, ondanks dat het een Doctor Who-flipperkast is, niet zo'n geweldige machine is.Toch Daleks.Deze machine wordt aangedreven door een Motorola 68B09E op 2 MHz, met 8 kB RAM op adres 0x0000.Dit RAM-geheugen werd ondersteund door een paar AA-batterijen, en zit gelukkig in een DIP-socket, waardoor [matthew] een bord kan maken dat is geladen met een FPGA-ontwikkelbord dat tussen de CPU en RAM gaat.
De basistechniek voor het onderscheppen en schrijven van een nieuwe topscore voor deze flipperkast komt van de ongelooflijke [sprite_tm] die hoge scores twittert vanuit een kast uit 1943.Het idee is simpel: laat een FPGA naar één specifiek geheugenadres kijken en stuur wat gegevens naar een computer wanneer de gegevens op dat adres zijn bijgewerkt.Voor de Doctor Who flipperkast is dit iets lastiger dan het klinkt: de data worden niet in hex opgeslagen, maar ingepakt in BCD.Maar na een beetje werk kon [matthew] nieuwe highscores schrijven vanuit een Python-script dat op een laptop draaide.Alle code (en nog een paar details) staan op een Github
Het uitbreiden van arcadespellen door gebruik te maken van adres- en datalijnen is niet iets dat we vaak zien, maar het is wel gedaan, het meest bekend bij de Church of Robotron.Hier veranderen een paar MAME-hacks een spelletje Robotron in een kerk waar de gelovigen zich volledig kunnen inzetten voor de redder van de wereld, die over 66 jaar zal arriveren en de overgebleven mensen zal redden van de robotapocalyps.Deze hack van een Doctor Who-flipperkast gaat verder dan een aangepaste versie van MAME, en als we ooit een echte kapel willen maken met een echt spelletje Robotron, zijn dit de technieken die we gaan gebruiken.
Een paar dagen geleden was er een verhaal over het gebruik van FRAM in Sega Saturn om opgeslagen games te behouden.Hetzelfde zou hier ook kunnen werken.
mijn machine is een Dr Who, maar eigenlijk was het de Fire Power van mijn vriend Stuarrrt waarop we dit probeerden.Ik denk dat het op de mijne zal werken, maar ik moet eerst de SRAM loskoppelen!
Bij de meeste spellen is de code bijna leeg in de EPROM's.Gebruik een logische analysator die adres-, gegevens- en besturingssignalen bekijkt om erachter te komen waar in het RAM de hoogste scores voorkomen, en schrijf vervolgens een kort programmatje om de gewenste waarde in het RAM-gebied in te voegen.Brand het programma in een geschikte EPROM en ruil het in voor één uitvoering.Vervang vervolgens de originele EPROM zodat het spel weer normaal is.Het kost wat tijd om te implementeren, maar het werkt prima.En nee, ik ga niet zeggen hoe of waar ik dit heb geverifieerd .
Waarom dit allemaal doen om een hoge score te behouden?Installeer gewoon een NVRAM en u bent er klaar mee.Dat is een gemakkelijke oplossing voor alle Williams WPC MPU-borden.Wat is er met de foto?Dat is niet eens een Doctor Who MPU afgebeeld.Het is een Rottendog MPU327-4 vervangingsbord voor Williams 3,4,6.Het heeft NVRAM en zal nooit zijn geheugen verliezen.
De ram van het vuurkracht-mpu-bord voor dat bereik is een 256x4bit-eenheid die ze kozen om aan te pakken op de onderste nybble en de bovenste nybble hoog te laten staan - zodat de standaard HSTD zou worden opgeslagen F5 F5 F0 F0 F0 F0.De hedendaagse flipperkasten van andere fabrikanten met vuurkracht die ook de 5101-ram gebruikten, zouden hetzelfde probleem hebben, maar Bally koos er (bijvoorbeeld) voor om de bovenste nibble actief te maken en de onderste als F te laten staan.
Ze moeten ergens in de adresruimte een RAM-geheugen met volledige bytebreedte hebben gehad, anders kon je een adres niet op de stapel duwen en ernaar terugkeren.Sommige andere ingebedde systemen waar ik aan werkte, gebruikten knabbelbreed RAM, maar hadden twee toegangen nodig om de volledige byte op te halen.De CPU zag echter slechts één buscyclus.
Zij doen.Het adres van $0000-$00FF is over de volledige breedte met 6810's of 5114's of in combinatie intern in een 6802. De 5101 nybble-opslag van $0100-$01FF is voor het gedeelte met batterijvoeding, omdat het een onderdeel met een lager stroomverbruik is.
"wat, ondanks dat het een Doctor Who flipperkast is, niet zo'n geweldige machine is" Wat????Dokter die een geweldige machine is, het is geen monster bash of Wizard of Oz, maar het is een solide en geliefde machine door de flipperkastgemeenschap
Daar ben ik het mee eens.Van alle flipperkasten heb ik honderden flipperkasten gespeeld.Doctor Who is naar mijn mening altijd het leukste om te spelen.
Huh, dat was een mindfuck... nadat ik die hack had uitgevoerd op de lokale hackerspaces-machine uit 1942, deed ik ook iets soortgelijks met de flipperkast die ik had aangeschaft.Dat is een Williams Dr. Who-machine.Ik heb gewoon geen FPGA gebruikt, maar iets bedacht met grendels, een AVR (denk ik) en een of andere Linux SBC die draadloos kon werken.
Ook ben ik het er niet mee eens dat de Dr. Who niet zo geweldig is.Het is naar mijn mening eigenlijk best goed voor de herspeelbaarheid.
Door onze website en diensten te gebruiken, gaat u uitdrukkelijk akkoord met het plaatsen van onze prestatie-, functionaliteits- en advertentiecookies.Kom meer te weten
Posttijd: 29 augustus 2019