FPGA가 핀볼 머신 마스터로 높은 점수를 획득했습니다.

전원을 뽑을 때 오래된 아케이드 캐비닛에서 높은 점수를 어떻게 유지합니까?핀볼 기계에 새로운 최고 점수를 주입하는 것이 가능합니까?그것은 Seinfield 에피소드의 B-플롯이었기 때문에 [matthew venn]을 FPGA와 메모리 맵의 토끼굴로 이끌고 핀볼 기계에서 새로운 최고 점수를 생성하는 것은 해볼 만한 가치가 있었습니다.

이 실험에 사용된 문제의 기계는 Williams의 Doctor Who입니다. 이 기계는 Doctor Who 핀볼 기계임에도 불구하고 그다지 뛰어난 기계는 아닙니다.그래도, 달렉.이 기계는 주소 0x0000에 8kB RAM을 갖춘 2MHz에서 실행되는 Motorola 68B09E로 구동됩니다.이 RAM은 몇 개의 AA 배터리로 백업되었으며 운 좋게도 DIP 소켓에 있어서 [matthew]는 CPU와 RAM 사이를 연결하는 FPGA 개발 보드가 탑재된 보드를 제작할 수 있었습니다.

이 핀볼 기계에 새로운 최고 점수를 가로채서 기록하는 기본 기술은 1943년 캐비닛에서 최고 점수를 트윗하는 놀라운 [sprite_tm]에서 비롯됩니다.아이디어는 간단합니다. FPGA가 하나의 특정 메모리 주소를 확인하고 해당 주소의 데이터가 업데이트되면 일부 데이터를 컴퓨터로 보내는 것입니다.Doctor Who 핀볼 기계의 경우 이는 생각보다 약간 어렵습니다. 데이터는 16진수로 저장되지 않고 BCD로 압축됩니다.하지만 약간의 작업 끝에 [matthew]는 노트북에서 실행되는 Python 스크립트를 통해 새로운 최고 점수를 기록할 수 있었습니다.모든 코드(및 몇 가지 추가 세부정보)는 Github에 있습니다.

주소와 데이터 라인을 활용하여 아케이드 게임을 확장하는 것은 흔히 볼 수 있는 일이 아니지만, 가장 유명한 것은 Church of Robotron에서 이루어졌습니다.여기에서 몇 가지 MAME 해킹은 Robotron 게임을 신자들이 66년 만에 도착하여 로봇 대재앙으로부터 나머지 인류를 구할 예정인 세계의 구세주에게 전적으로 헌신할 수 있는 교회로 바꿉니다.이 Doctor Who 핀볼 기계 해킹은 MAME의 모드 버전을 뛰어넘는 것이며, 실제 Robotron 게임으로 실제 예배당을 만들 예정이라면 이것이 우리가 사용할 기술입니다.

며칠 전 Sega Saturn에서 게임 저장을 보존하기 위해 FRAM을 사용한다는 이야기가 있었습니다.여기서도 마찬가지입니다.

내 기계는 Dr Who이지만 실제로 우리가 이것을 시도한 것은 내 친구 Stuarrrt의 Fire Power였습니다.제 생각에는 괜찮을 것 같지만 먼저 SRAM의 납땜을 풀어야 합니다!

대부분의 게임에는 EPROM이 부족한 코드가 있습니다.주소, 데이터 및 제어 신호를 관찰하는 로직 분석기를 사용하여 RAM의 최고 점수가 어디에 있는지 파악한 다음 원하는 값을 RAM 영역에 삽입하는 짧은 프로그램을 작성하십시오.프로그램을 적합한 EPROM에 굽고 한 번 실행하도록 교체합니다.그런 다음 원래 EPROM을 교체하여 게임이 다시 정상으로 돌아오도록 하세요.구현하는 데 약간의 시간이 걸리지만 잘 작동합니다.아니요, 제가 이것을 어떻게, 어디서 확인했는지는 말하지 않겠습니다.:) .

높은 점수를 저장하기 위해 이 모든 과정을 거쳐야 하는 이유는 무엇입니까?NVRAM을 설치하고 완료하면 됩니다.이는 모든 Williams WPC MPU 보드에 대한 쉬운 수정입니다.사진은 무엇입니까?그것은 심지어 Doctor Who MPU 사진이 아닙니다.Williams 3,4,6용 Rottendog MPU327-4 교체 보드입니다.NVRAM이 있으며 메모리가 손실되지 않습니다.

해당 범위에 대한 Firepower MPU 보드의 램은 하단 니블에서 주소를 지정하고 상단 니블을 높게 끌어온 상태로 두도록 선택한 256x4비트 장치입니다. 따라서 재고 HSTD는 F5 F5 F0 F0 F0 F0에 저장됩니다.5101 램을 사용하는 다른 제조업체의 최신 핀볼 기계에도 동일한 문제가 있지만 Bally(예를 들어)는 위쪽 니블을 활성화하고 아래쪽 니블을 F로 남겨 두었습니다.

주소 공간 어딘가에 전체 바이트 너비의 RAM이 있어야 합니다. 그렇지 않으면 스택에 주소를 푸시하고 그 주소로 돌아갈 수 없습니다.내가 사용한 일부 다른 임베디드 시스템에서는 니블 와이드 RAM을 사용했지만 전체 바이트를 가져오기 위해 두 번 액세스했습니다.그러나 CPU는 단일 버스 사이클만 보았습니다.

그들이하다.$0000-$00FF의 주소는 6810 또는 5114 또는 6802 내부 조합의 전체 너비입니다. $0100-$01FF의 5101 니블 스토리지는 전력 요구 사항이 낮은 부품이므로 배터리 지원 부품을 위한 것입니다.

“닥터 후 핀볼 기계임에도 불구하고 그다지 대단한 기계는 아닙니다.” 뭐????훌륭한 기계인 닥터. 괴물 강타나 오즈의 마법사는 아니지만 핀볼 커뮤니티에서 견고하고 사랑받는 기계입니다.

나는 동의한다.내가 플레이해 본 수백 대의 핀볼 기계 중에서.제 생각에는 닥터 후가 가장 재미있다고 생각합니다.

허, 그건 말도 안 되는 일이었어… 내가 지역 해커스페이스 1942 머신을 해킹한 후, 내가 구입한 핀볼 머신으로도 비슷한 일을 했습니다.윌리엄스 닥터 후(Williams Dr. Who) 기계입니다.저는 FPGA를 사용하지 않고 래치, AVR(제 생각에는), 무선 기능이 가능한 일부 Linux SBC를 사용하여 무언가를 준비했습니다.

또한 나는 Dr. Who가 그렇게 훌륭하지 않다는 것에 동의하지 않습니다.제 생각에는 실제로 재생성 측면에서 꽤 좋습니다.

당사 웹사이트와 서비스를 사용함으로써 귀하는 당사의 성능, 기능 및 광고 쿠키 배치에 명시적으로 동의하게 됩니다.더 알아보기


게시 시간: 2019년 8월 29일
WhatsApp 온라인 채팅!