글
아케이드 기판 Zealer Board는 중앙에 달린 SoC가 모든 것(CPU, 그래픽, 사운드)을 처리하는 구조이다. 그런데 실제로는 공식 사양과 다른 부분이 존재한다.
CPU ISA는 EISC라는데, 그 구조상 사실상 가변 길이 RISC의 일종으로 봐야한다. CPU 명령어셋은 Operand의 일부를 특정 레지스터에 저장하며, 이를 위한 명령도 한 워드(16비트, 이 CPU의 모든 명령어는 16비트를 차지한다.)를 차지하는데, 이걸 사용할 Operand의 길이만큼 반복하다 보면 실제 한 명령을 위한 비트 수(=용량)가 늘어나기 마련이다. 이럴 거면 다른 가변 길이 명령어셋(Thumb-2나 RISC-V 중에서 가변 길이 명령어를 지원하는 확장 등, 아니면 CISC 또한 선택지가 될 수 있다.)을 쓰는 게 낫다는 생각도 할 수 있는데, 제조사에 따르면 이 구조는 하드웨어 설계의 단순화를 도모한다는 장점이 있다고 한다. 대신 명령 종속성에는 불리한 구조. (초창기 ARM과 비슷한 이유)
그래픽은 최대 2048개(명령 슬롯 2048개)의 아핀 변환된 스프라이트(또는 타일맵)을 화면에 출력할 수 있다. 공식 사양서는 3D 기반이라고 주장하지만 구조상 슈퍼패미컴의 배경 모드 7에 가까운 방식이다. 약점은 래스터 스크롤을 하드웨어 단에서 지원하지 않는다는 것. 이는 내장된 기능으로 (각 스프라이트는 그릴 영역을 1픽셀씩 조정할 수 있다.) 1라인 단위로 그려서 이어붙이면 되지만, 이들 역시 명령 슬롯을 차지하는데, 이렇게 하면 화면의 세로 해상도만큼 다른 명령에 할당할 수 있는 슬롯이 줄어든다. 또한 아핀 변환을 지원한다는 특성상 원본 그래픽의 크기도 2의 승수밖에 지원하지 않는다. 이 역시 2의 승수 단위로 잘라서 이어붙이면 되지만 이 방식 역시 명령 슬롯을 차지한다. 데이터시트에는 디더링을 지원한다고 써있지만 아직 에뮬레이션 되지 않았다.
사운드 데이터는 텍스처 RAM과 프레임버퍼 RAM 각각의 쓰고 남은 용량을 사용할 수 있다. 에뮬레이션이 현재(2025년 11월 1일 기준)까지도 불완전해서 일부 효과가 에뮬레이션 되지 못했다. 그나마 음원 재생 부분은 거의 다가 에뮬레이션 되어서 게임 사운드는 정상적으로 들을 수 있기는 하지만.
가변 해상도는 실제로 이 기판으로 나온 탑블레이드V 아케이드판(메인보드에 브레자소프트 로고 대신 손오공 로고가 붙어있다.)과 Cross Puzzle(Zealer Board의 CPU를 썼지만 다른 기판에서 구동된다.)이라는 게임들에서 실제로 쓰인 바가 있다. 전자는 15KHz 수평해상도 내에서 가로 해상도만 늘린 것이고, 후자는 31KHz 수평해상도를 가져서 VGA 모니터가 필수.
마더보드 내장 펌웨어에 대한 내용이나, 게임 저장 매체로 NOR 플래시 메모리(최대 4개(ROM 보드에는 최대 8개까지 달 수 있지만, 실제로 나머지 공간이 사용된 경우는 없음), 뱅크스위칭을 통해 접근할 칩을 선택하는 방식.)를 사용하는데 이건 언급되지 않았다. Built-in이라는 복제방지 장치도 실제로는 ROM 보드에 달려있는 것으로 보인다. 확장이나, ROM 보드에 마스크 ROM이나 NAND 플래시가 달릴 수 있다던가 하는 이유가 있나 하는 생각도 든다.
SoC의 동작속도(CPU, 그래픽, 사운드 모두)도 실제로는 가변 속도(PLL 기반)인데, 이것 또한 에뮬레이션되지 않아 탑블레이드V같은 경우 음악이 아케이드 실기보다 빠르고 사운드의 음높이가 높다던가 하는 문제도 있다.
출처는 MAME 소스:
https://github.com/mamedev/mame/blob/master/src/devices/video/vrender0.cpp
mame/src/devices/video/vrender0.cpp at master · mamedev/mame
MAME. Contribute to mamedev/mame development by creating an account on GitHub.
github.com
https://github.com/mamedev/mame/blob/master/src/devices/sound/vrender0.cpp
mame/src/devices/sound/vrender0.cpp at master · mamedev/mame
MAME. Contribute to mamedev/mame development by creating an account on GitHub.
github.com
https://github.com/mamedev/mame/blob/master/src/devices/machine/vrender0.cpp
mame/src/devices/machine/vrender0.cpp at master · mamedev/mame
MAME. Contribute to mamedev/mame development by creating an account on GitHub.
github.com
'기타' 카테고리의 다른 글
| 슈팅 게임 이야기 (0) | 2025.11.14 |
|---|---|
| 무제 (0) | 2025.11.14 |
| 메가 드라이브 게임의 불법복제를 어렵게 하는 법 (0) | 2025.09.14 |
| 메가 드라이브의 그래픽 포맷 (0) | 2025.09.03 |
| 세가 X보드와 Y보드의 곱셈기 (1) | 2025.08.31 |
RECENT COMMENT