테크레시피

게임보이 개조 없이 영상 캡처‧전송을…

GB 인터셉터(GB Interceptor)는 게임보이 본체를 개조하지 않고 게임 영상을 캡처하거나 전달할 수 있게 돕는 툴이다.

현재 게임보이에서 영상을 스트리밍하는 건 어렵지 않다. 에뮬레이터를 이용하면 쉽게 게임보이에서 게임 플레이 장면을 전달할 수 있다. 또 게임 호환기를 이용해 게임보이 영상을 HDMI 출력으로 변환하는 것도 가능하다. 그 밖에 게임보이에 HDMI 단자를 추가하는 개조를 하는 사람도 일부 있다.

GB 인터셉터를 개발하게 된 건 개발자에게 한 테트리스 애호가가 테트리스 온라인 대회에 참가하고 싶다고 밝히면서다. 테트리스 온라인 대회에 참가하는 모습을 전달하고 싶다는 생각을 밝힌 것. 테트리스 대회에선 플레이어가 자신의 손에 익숙한 하드웨어로 테트리스를 하는 게 중요하기 때문에 개조기나 호환기 등을 이용하면 대회 성적에 큰 영향을 미칠 가능성이 있다. 따라서 테트리스 애호가는 개조되지 않은 게임보이로 게임 장면을 전달할 수 없냐고 문의한 것이다.

게임보이 본체를 개조하지 않고 게임 데이터에 액세스할 수 있는 건 게임보이 카트리지 슬롯이다. 게임 데이터 모든 게 카트리지 슬롯을 통과하기 때문에 개발자는 카트리지 슬롯에서 데이터를 가로채는 기능을 갖춘 어댑터를 만들기로 결정했다고 한다.

하지만 게임보이 카트리지 슬롯에서 데이터를 가로채는 것만으론 게임 데이터에 임의 타이밍으로 액세스할 수 없고 게임보이 CPU가 게임 카트리지로부터 받은 명령을 정리한 램 내 데이터를 볼 수도 없다. 더구나 화면에 이미지를 그리는데 필요한 모든 걸 포함하는 비디오 램이 표시되지 않기 때문에 대신 VRAM 자체 복사본을 만들기로 결정했다고 한다.

개발자는 카트리지 메모리 버스로부터 데이터를 공급하기 위한 에뮬레이터를 작성했다. 또 라즈베리파이 피코 마이크로 컨트롤러인 rp2040을 이용해 게임보이 2가지 주요 처리인 CPU를 에뮬레이트해 VRAM 복사본을 재작성하는 처리, 게임보이 그래픽 유닛인 PPU를 에뮬레이트하는 처리를 분할해 처리하게 했다고 한다.

게임보이 CPU 에뮬레이션은 GB 인터셉터 개발에서 가장 어려운 부분이었다고 한다. 가장 어려운 이유는 1MHz 속도로 이벤트를 표시하는 메모리 버스를 따라잡아야 하기 때문이라고 한다. PPU 에뮬레이션이 늦어도 화면에 깜박임 같은 짧은 글리치가 발생하는 정도로 끝나지만 CPU 에뮬레이션이 늦어지면 결국 메모리 버스상 이벤트를 놓쳐 램 복제가 완전히 동기되지 않게 될 가능성이 있을 뿐 아니라 에뮬레이터가 다음 명령을 해석할 수 없게 되는 경우도 있다고 한다. 게임보이 CPU는 몇 가지 명령을 실행하는데 몇 사이클이 걸리는데 반해 다른 명령은 1사이클로 완료하기 때문에 메모리 버스상 이벤트가 항상 CPU용 명령은 아니다. 따라서 에뮬레이터는 특정 명령 다음에 이벤트가 CPU 전용 명령으로 간주될 때 사이클을 무시해야 한다. 이런 문제를 해결하기 위해 개발자는 rp2040 동작 주파수를 디폴트 125MHz에서 225MHz로 오버클록해야 했다고 한다.

GB 인터셉터는 라즈베리파이 피코가 기반으로 GPIO 포트와 카트리지 경로에 연결하기 위한 여러 개 버스 트랜시버가 제공된다. 버스 32핀 중 2개는 전력, 1개는 아날로그 오디오, 1개는 게임보이 리셋 상태 제어에 사용되며 나머지 28개는 rp2040과 연결된다. 이에 따라 rp2040은 16개 어드레스 핀, 8개 데이터 핀, 4개 버스 제어 핀에 액세스 가능하게 됐다고 한다. 이 상태에선 GPIO가 사용되지 않은 상태로 유지되지만 하나는 전압 모니터링에 사용되고 다른 하나는 상태 LED 를 제어하는데 사용된다.

개발자는 GB 인터셉터 펌웨어와 PCB를 깃허브에 공개하고 있으며 관련 코드는 GNU 라이선스 버전3(GNU General Public License)에 따라 배포됐다 참고로 GB 인터셉터를 이용할 때에는 화면에 플레이에 적합하지 않은 작은 러그가 발생하는 게 주의 사항으로 적혀 있으며 개발자는 느린 게임에는 문제 없을지 모른다면서도 GB 인터셉터는 어디까지나 캡처와 전달에 중점을 둔 도구라고 밝히고 있다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사