Just a Blog

[Analogue Pocket] openFPGA의 MSX 코어 사용 소감 본문

Game

[Analogue Pocket] openFPGA의 MSX 코어 사용 소감

wehong 2024. 11. 16. 00:46

Analogue Pocket의 openFPGA에 MSX 코어가 공개되었다.

 

GitHub - opengateware/computer-msx: MSX Compatible Gateware IP Core

MSX Compatible Gateware IP Core. Contribute to opengateware/computer-msx development by creating an account on GitHub.

github.com

pupdate(Pocket Update Utility)를 통해 코어를 설치하고 잠시 사용한 소감을 언급하고자 한다.

 

MSX 코어는 MiSTer 상에서 구현된 Molekula의 MSX1 코어를 기반으로 제작된 것으로 보인다. Kdl의 OCM 구현 소스를 MiSTer에 포팅한 MSX 코어가 아니라 별도로 신규 개발되었던 MSX1 코어를 기반으로 했다는 점은 반갑기도 하고 아쉽기도 한데, 롬 이미지 파일 구동에 SofaRun 등의 런처를 사용하지 않아도 된다는 점에서 매우 반갑지만 MiSTer의 오리지널 MSX1 코어 처럼 MSX2/2+ 기능 지원이 제약될 것 같다는 점에서 아쉬움이 있다.

 

코어의 기본 바이오스는 C-BIOS인데 openMSX 에뮬레이터용 MSX 기기 바이오스를 사용하면 Molekula의 MiSTer MSX1 코어 처럼 해당 환경으로 부팅이 가능했다. 심지어 대우 IQ-1000 바이오스를 로드하니 IQ-1000 처럼 부팅하고 한글도 표시했다.

슬롯 A 또는 B에 아무런 롬 이미지를 설정하지 않으면 대부분은 보통의 MSX 기기처럼 그냥 BASIC 모드로 들어간다. 하지만 키보드가 없기에 BASIC 프로그램을 입력하거나 실행할 수는 없었다.

슬롯에 아무런 카트리지가 없을 때 별도의 내장 프로그램이 동작하는 시스템의 펌웨어를 로드하면 BASIC 대신 내장된 기본 프로그램이 동작한다.

Analogue 버튼을 눌렀을 때 나오는 기본 메뉴의 내용은 MiSTer의 MSX1 코어를 연상시킨다. 공통적인 Display Mode와 Control 메뉴가 있고, 슬롯 A/B에 롬을 로드할 수 있는 메뉴와 바이오스/펌웨어를 로드할 수 있는 메뉴 등이 있다.

슬롯 A/B에 로딩되는 롬 이미지의 매퍼(mapper) 설정은 기본적으로 자동 설정되는데, 경우에 따라서는 수동으로 설정해야 하는 경우도 있다. 메뉴에서 다양한 매퍼를 설정할 수는 있는데 바로 뒤에 설명할 제약점 때문에 현재는 효용이 조금 떨어지는 것 같다.

메뉴에서 슬롯 A/B에 로딩되는 롬 이미지의 매퍼(mapper)를 설정할 수 있다. 'Auto' 항목이 있어서 MiSTer MSX1 코어처럼 대부분 자동으로 매퍼를 설정할 것 같은데, 코어의 현재 버전에서 자동으로 매퍼를 잡지 못하는 것 같다. 메가롬 이상에서는 수동으로 설정해야 롬이 동작했다.

슬롯 A나 B에 롬 이미지를 로드하면 게임이 실행된다. 하지만 이 글의 작성 시점의 버전에서는 구동에 제약이 보였다. 일단 시스템을 MSX1으로만 구성할 수 있기 때문에 구동 가능한 게임이 MSX1 게임으로 줄어든다. 그리고 이상하게도 (이 글의 작성 시점에 최신 버전인) 0.9.1 버전에서 메가롬 게임들 구동이 안되었다. '몽대륙', '그라디우스2', '마성전설2', 'F-1 Spirit' 등의 메가롬 게임이 모두 실행되지 않았다. 그래서 앞서 설명한 매퍼 설정이 큰 의미가 없었다.

슬롯 A나 B에 롬 이미지를 로드하면 게임이 실행된다. 현재 코어에서 MSX 시스템을 MSX1으로만 구성할 수 있기 때문에 구동 가능한 게임은 MSX1 게임이 된다.

처음에 '몽대륙', '그라디우스2', '마성전설2', 'F-1 Spirit' 등이 구동되지 않아서 메가롬 게임 구동에 문제가 있는 줄 알았는데, 살펴보니 (이 글의 작성 시점에 최신 버전인) 0.9.1 버전의 코어에서 메가롬의 매퍼를 자동으로 잡지 못하는 문제가 있는 것 같다. 매퍼를 수동으로 잡아주니 메가롬 게임이 구동되었다.

구동해 본 킬로롬 이미지들도 잘 구동했다. 특히 OCMC에서 SofaRun으로 구동이 어려운 'Pooyan'이나 독특한 매퍼를 가진 'R-Type'도 잘 구동했다('R-Type'은 매퍼 설정에서 수동으로 'R-TYPE'을 선택했다).

개발자가 향후 On-Screen 키보드를 포함할 계획인 모양인데, 그동안 이 코어를 사용한다면 메뉴의 키보드 맵팅 기능을 이용해 일부 키를 사용할 수 있을 것 같다. X, Y, L, R, Start, Select 버튼을 키보드의 여러 키 중 하나에 할당할 수 있다.

전반적으로 아직 구현을 남겨놓은 부분이 많아 보이는데, 플로피 디스크 이미지나 카세트 이미지 로드도 아직 구현이 되지 않았다. MiSTer의 MSX1 코어가 별도의 브랜치로 구현한 MSX2 지원 기능이 이 코어에서 추가될지도 궁금하다.

 

Comments