브라우저에서 네이티브로 실행되는 고전 PC 데모씬 작품들

2 hours ago 3
  • demoscene-recomp는 고전 PC 데모의 원본 DOS 코드를 명령어 단위로 재컴파일해 브라우저에서 실행함
  • x86 에뮬레이터에서 데모를 처음부터 끝까지 실행하며 CPU가 실제 실행한 코드 블록을 기록하고, 원래 명령어와 정확한 사이클 타이밍을 유지한 C 코드로 변환함
  • 변환한 C 코드를 타이머, VGA 카드, Sound Blaster의 하드웨어 모델과 함께 WebAssembly로 컴파일함
  • 결과물의 모든 인터럽트, 포트 접근, 프레임을 에뮬레이터와 대조해 동일한 에뮬레이션 시점에 발생하는지 검증함
  • 원래 데모는 70Hz VGA로 동작했으므로, 70Hz 또는 140Hz 이상의 디스플레이에서 가장 부드럽게 보임

DOS 코드에서 WebAssembly까지

  • demoscene-recomp 는 고전 PC 데모씬 작품을 브라우저에서 실행하는 프로젝트임
  • 변환 과정은 실행 기록, 명령어별 재컴파일을 기반으로 함
    • x86 에뮬레이터에서 데모를 처음부터 끝까지 실행하며 CPU가 실제 실행한 모든 코드 블록을 기록함
    • 기록을 C 코드로 변환하면서 원래 명령어를 일대일로 옮기고, 에뮬레이션한 기계의 정확한 사이클 타이밍을 유지함
    • C 코드를 데모가 사용하는 타이머, VGA 카드, Sound Blaster 모델과 함께 WebAssembly로 컴파일함
  • 결과물은 에뮬레이터와 이벤트별로 대조함
    • 모든 인터럽트, 포트 접근, 프레임이 동일한 에뮬레이션 시간에 발생하는지 확인함

원본 실행 방식과 화면 주사율

  • 데모 자체의 로더, 음악 플레이어, 효과는 1992년과 1993년 당시처럼 실행되며, 하드웨어만 모델링함
  • 원본 배포 파일은 수정하지 않은 상태로 제공하며, 데모가 실행 중에 직접 읽음
  • 원래 데모의 VGA 출력은 70Hz이므로, 70Hz 또는 140Hz 이상의 주사율로 동작하는 디스플레이에서 가장 부드럽게 보임
Read Entire Article