FPGA, 핀볼 머신에 탑재, 최고 점수 획득

전원을 차단할 때 오래된 아케이드 캐비닛에서 높은 점수를 어떻게 유지합니까?핀볼 머신에 새로운 고득점을 주입할 수 있습니까?그것은 Seinfield 에피소드의 b-plot이었기 때문에 [matthew venn]을 핀볼 머신에서 새로운 최고 점수를 생성하기 위해 FPGA와 메모리 맵의 토끼 구멍으로 이끕니다.

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

이 핀볼 머신의 새로운 최고 점수를 가로채고 작성하는 기본 기술은 1943년 캐비닛에서 최고 점수를 트윗하고 있는 놀라운 [sprite_tm]에서 나옵니다.아이디어는 간단합니다. FPGA가 하나의 특정 메모리 주소를 보고 해당 주소의 데이터가 업데이트될 때 일부 데이터를 컴퓨터로 보냅니다.Doctor Who 핀볼 기계의 경우 이것은 들리는 것보다 약간 어렵습니다. 데이터는 16진수로 저장되지 않고 BCD로 채워집니다.하지만 약간의 작업 끝에 [matthew]는 랩톱에서 실행되는 Python 스크립트에서 새로운 최고 점수를 작성할 수 있었습니다.모든 코드(및 몇 가지 세부 정보)는 Github에서 끝났습니다.

주소와 데이터 라인을 활용하여 아케이드 게임을 확장하는 것은 우리가 많이 본 것은 아니지만, 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이 있으며 메모리를 잃지 않습니다.

해당 범위에 대한 화력 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 온라인 채팅!