세가 CD 실피드의 엔지니어링: 제한된 하드웨어에서 FMV 최적화
세가 CD 실피드의 엔지니어링: 제한된 하드웨어에서 FMV 최적화
실피드의 바텀업 엔지니어링 접근법
세가 CD 실피드는 1990년대 풀모션 비디오(FMV) 게임들이 흔히 겪던 함정을 피했습니다. 고해상도 영화를 제한된 하드웨어에 포팅하려는 시도가 아니라, 시스템의 제약 조건에서 시작해 위로 설계했기 때문입니다. 당시 대부분의 FMV 타이틀은 아주 작은 창, 과도한 디더링, 압축 아티팩트에 시달렸지만, 게임아츠는 플랫 쉐이딩 폴리곤, 엄격히 16색 팔레트, 최소한의 디더링을 활용해 시각적으로 설득력 있는 경험을 만들었으며, 플레이어들을 종종 실시간 3D 렌더링을 보는 듯한 착각에 빠뜨렸습니다.
하드웨어 아키텍처: 제네시스와 메가‑CD 병행
실피드를 실행하려면 두 개의 병렬 시스템, 즉 세가 제네시스와 메가‑CD 애드온 사이의 복잡한 동기화가 필요합니다.
- 제네시스 측: 7.67 MHz MC68000 CPU와 64 KB RAM을 탑재했습니다. HUD(Heads‑Up Display)를 배경 레이어 A에, 전경 스프라이트 레이어를 담당합니다.
- 메가‑CD 측: 12.5 MHz MC68000 서브‑CPU, 256 KB 워드 RAM, 512 KB 프로그램 RAM을 갖추고 있습니다. 서브‑CPU는 배경 레이어 B를 관리하며, 더블 버퍼 시스템을 사용해 타일을 워드 RAM에 렌더링하고 메인 CPU는 현재 버퍼를 비디오 디스플레이 프로세서(VDP)로 전달합니다.
오디오 처리는 분리된 경로로 이루어집니다. 비인터랙티브 컷신은 메가‑CD의 Ricoh PCM 칩을 이용해 고품질 음악을 재생하고, 인터랙티브 시퀀스에서는 YM2612 칩으로 음악을 제작하며, 필요에 따라 Ricoh 칩을 PCM 샘플용으로 간헐적으로 사용합니다.
대역폭 병목 현상 극복
FMV는 주로 대역폭 문제입니다: 데이터를 CD‑ROM에서 읽고, 압축을 해제한 뒤 화면에 전달해야 합니다. 메가‑CD의 단일 속도 드라이브(150 KiB/s)와 느린 접근 시간(800 ms) 때문에 이는 큰 도전이었습니다. 실피드의 15 fps 비디오 스트림과 16‑bit 16 kHz 음악을 결합하면 프레임당 8 KiB만 남게 됩니다.
이를 해결하기 위해 게임아츠는 세 가지 주요 대역폭 감소 전략을 구현했습니다:
- 해상도 감소: 타일의 상하 라인을 검은색으로 설정해 영화 같은 화면 비율을 만들고, 처리해야 할 타일 수 자체를 줄였습니다.
- 프레임레이트 조정: 게임은 주로 15 fps로 동작하며, 복잡한 장면(예: 스테이지 1과 스테이지 10의 “프랙탈” 텍스처)에서는 7.5 fps로 낮춥니다.
- 맞춤형 압축: 모든 프레임은 자체 완전성을 유지하지만(델타 압축 없음), 포맷이 타일맵 시스템을 활용해 대폭 절감합니다.
고급 비디오 압축 기법
타일맵 및 단색 최적화
실피드 인코더는 단일 색상으로만 구성된 타일을 식별합니다. 각 타일을 개별적으로 저장하는 대신, 15개의 단색 타일 각각을 한 번만 저장하고 타일맵에서 반복 참조합니다. 일부 프레임에서는 이 방법으로 대역폭 요구량을 최대 50%까지 줄일 수 있습니다.
메가‑CD ASIC "Font Bit" 활용
두 색상만 포함된 타일의 경우, 실피드는 메가‑CD ASIC의 잘 알려지지 않은 기능인 "Font bit"를 사용합니다. 이 기능은 원래 빠른 2색 한자/텍스트 렌더링을 위해 설계되었습니다.
소스 컬러 레지스터에 두 개의 팔레트 인덱스를 쓰고, 폰트 레지스터에 16‑bit 비트맵 패턴을 기록하면 ASIC이 1‑bit 패턴을 4‑bit 픽셀 데이터로 확장합니다. 이를 통해 8×8 타일의 두 행을 단 3바이트로 생성할 수 있어, 해당 타일에 대해 대역폭을 37% 절감하고 CPU 부하도 감소시킵니다.
타일맵 압축
보통 768‑타일 맵에 960 바이트가 필요하지만, 실피드는 768‑비트 비트맵(96 바이트)을 사용합니다. ‘0’은 타일 인덱스 자동 증가를, ‘1’은 즉시 값을 의미합니다. 이 방식은 타일맵 공간 요구량을 거의 30% 정도 줄여줍니다.
시각 효과와 팔레트 사이클링
레이저와 폭발 효과에 다채로운 색을 사용하면서도 팔레트 수를 늘리지 않기 위해, 개발자는 팔레트 사이클링 트릭을 사용했습니다. 팔레트 끝에 네 색을 예약해 두고, 메인 MC68000 CPU가 매 프레임마다 이를 순환시켰습니다. 이 색들은 게임플레이 효과에만 사용되었기 때문에, 아티스트는 실제 게임플레이 시퀀스에서 12색만 사용할 수 있었고, 컷신에서는 전체 16색 팔레트를 활용할 수 있었습니다.
커뮤니티 시각
기술적으로는 엔지니어링이 높이 평가받았지만, 게임플레이에 대한 평가는 엇갈립니다. 일부 유저는 이를 "영화를 조종하는 듯한" 설득력 있는 시네마틱 경험으로 기억하고, 다른 이들은 게임플레이 자체를 "진짜 형편없는"이라고 표현합니다.
"세가 CD는 3D 기능이 전혀 없었어요(단순 2D 회전·스케일만 가능). 그런데 게임아츠는 aliasing까지도 믿을 수 없을 정도로 FMV를 구현했어요. 그래서 3D 렌더링이 아니라는 걸 이해하기 힘듭니다."
"멋진 기사지만, 실피드는 정말 형편없는 게임이에요."
요약
세가 CD 실피드는 바텀업 방식으로 설계하고, 메가‑CD ASIC의 폰트 레지스터와 타일맵 최적화를 활용한 맞춤형 압축 포맷을 사용해 제한된 하드웨어에서도 고품질 FMV를 구현했습니다.
제목
세가 CD 실피드의 엔지니어링: 제한된 하드웨어에서 FMV 최적화