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 hoge scores 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 die draait op 2MHz, met 8kB RAM op adres 0x0000.Dit RAM-geheugen heeft een back-up van een paar AA-batterijen en bevindt zich gelukkig in een DIP-socket, waardoor [matthew] een bord kan maken dat is geladen met een FPGA-ontwikkelbord dat tussen de CPU en het RAM gaat.
De basistechniek voor het onderscheppen en schrijven van een nieuwe highscore voor deze flipperkast komt van de ongelooflijke [sprite_tm] die hoge scores tweet vanuit een kast uit 1943.Het idee is simpel: kijk met een FPGA naar één specifiek geheugenadres en stuur wat gegevens naar een computer wanneer de gegevens op dat adres zijn bijgewerkt.Voor de Doctor Who flipperkast is dit iets moeilijker dan het klinkt: de gegevens worden niet in hex opgeslagen, maar verpakt in BCD.Maar na een beetje werk was [matthew] in staat om nieuwe highscores te schrijven van een Python-script dat op een laptop draaide.Alle code (en nog een paar details) staan op een Github
Het uitbreiden van arcade-spellen door gebruik te maken van adres- en datalijnen is niet iets dat we vaak zien, maar het is gedaan, het meest beroemd met 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 gemodificeerde versie van MAME, en als we ooit een echte kapel gaan 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 game-saves te behouden.Hetzelfde zou hier ook kunnen werken.
mijn machine is een Dr Who, maar eigenlijk was het de Fire Power van mijn maat Stuarrrt waarop we dit probeerden.Ik denk dat het op de mijne zal werken, maar ik moet eerst de SRAM losmaken!
Bij de meeste spellen is de code bijna op met EPROM's.Gebruik een logische analysator die adres-, gegevens- en besturingssignalen bekijkt om erachter te komen waar in het RAM de hoogste scores leven, en schrijf dan een kort programma om de gewenste waarde in het RAM-gebied in te voegen.Brand het programma in een geschikte EPROM en wissel 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 doornemen om een hoge score te behalen?Installeer gewoon een NVRAM en klaar ermee.Dat is een gemakkelijke oplossing voor alle Williams WPC MPU-kaarten.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 op de onderste nybble te adresseren en de bovenste nybble hoog te laten trekken - zodat de voorraad HSTD zou worden opgeslagen F5 F5 F0 F0 F0 F0.De hedendaagse flipperkasten van andere fabrikanten voor vuurkracht die ook de 5101-ram gebruikten, zouden hetzelfde probleem hebben, maar Bally (bijvoorbeeld) koos ervoor om de bovenste nybble actief te maken en de onderste als F te laten.
Ze moeten ergens in de adresruimte een RAM van volledige byte hebben gehad, anders kon je geen adres op de stapel duwen en ernaar terugkeren.Sommige andere embedded systemen waar ik aan werkte, gebruikten nibble wide RAM, maar hadden twee toegangen nodig om de volledige byte op te halen.De CPU zag echter maar een enkele 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 batterijgedeelte, 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 die ik honderden flipperkasten heb gespeeld.Doctor Who is naar mijn mening altijd het leukst om te spelen.
Huh, dat was een mindfuck... nadat ik die hack op de lokale hackerspaces 1942-machine had gedaan, deed ik ook iets soortgelijks met de flipperkast die ik kocht.Dat is een Williams Dr. Who-machine.Ik heb gewoon geen FPGA gebruikt, maar heb iets bedacht met vergrendelingen, een AVR (denk ik) en een Linux SBC die draadloos kon.
Ik ben het er ook niet mee eens dat Dr. Who niet zo geweldig is.Het is eigenlijk best aardig voor de herspeelbaarheid, naar mijn mening.
Door onze website en diensten te gebruiken, gaat u uitdrukkelijk akkoord met het plaatsen van onze prestatie-, functionaliteits- en advertentiecookies.Leer meer
Posttijd: 02-sep-2019