F-15 Strike Eagle II 역공학 프로젝트 v0.9.1 도달
F-15 Strike Eagle II 주요 재구성 이정표 달성
1989년 DOS 게임 F-15 Strike Eagle II에 대한 역공학 프로젝트가 egame 및 end를 포함한 모든 게임 실행 파일의 C 소스 코드를 성공적으로 재구성했습니다. 이 이정표는 opcode의 정적 분석 단계에서 활발한 런타임 테스트 단계로의 전환을 의미하며, 향후 Linux 및 Windows로의 포팅을 위한 기반을 마련합니다.
현재 상태 및 기술 진행 상황
프로젝트는 어셈블리를 C로 변환하는 초기 단계를 넘어섰습니다. 현재 재구성 상태는 다음과 같습니다:
- 전체 소스 재구성: 모든 실행 파일에 대한 C 코드가 모두 재구성되었습니다.
- 데이터 마이그레이션: 모든 게임 데이터가 어셈블리에서 C로 옮겨졌습니다.
- 기능 교체: 대부분의 어셈블리 전용 코드가 C로 작성된 기능적 대체물로 교체되었습니다.
- 의미 있는 라벨링: 대부분의 루틴과 데이터 구조에 유지보수를 용이하게 하는 의미 있는 이름이 부여되었습니다.
정확성을 보장하기 위해 프로젝트는 재구성된 opcode가 원본 바이너리와 일치하는지 검증하는 도구를 사용합니다. 그러나 이러한 도구는 데이터 레이아웃 버그를 감지하지 못하므로 현재는 수동 테스트 단계에 들어갔습니다.
테스트 버전 v0.9.1
v0.9.1 릴리스가 이제 커뮤니티 테스트를 위해 제공됩니다. 이 버전은 원본 게임의 451.03 버전 및 Desert Storm 확장팩과 함께 작동하도록 설계되었습니다.
설치 및 요구 사항
재구성을 테스트하려면 사용자는 다음을 수행해야 합니다:
- 원본 게임 파일(
451.03버전)을 보유하고 있어야 합니다. f15_se2-*.zip릴리스에 포함된 새로운 실행 파일로 게임 폴더의 원본 실행 파일을 교체합니다.- 교체 전에 원본 파일을 백업합니다.
- 새로운
f15.exe가 실행되도록 원본f15.com을 삭제합니다.
알려진 제한 사항 및 테스트 범위
테스터는 현재 빌드가 설정 화면을 건너뛰고 MCGA/VGA 디스플레이로 기본 설정되며 사운드와 조이스틱 지원이 없음을 유의해야 합니다. 이러한 제한에도 불구하고 미션 브리핑, 비행 및 디브리핑 섹션은 완전히 작동합니다.
개발자는 다음에 대한 보고를 요청합니다:
- 시스템 충돌
- 그래픽 결함
- 입력/키 오류
"Bug-for-Bug" 철학
이 프로젝트는 버그 대 버그 재구성입니다. 즉, 원본 1989년 게임에 존재하던 동작은 재구성 버전에서도 그대로 유지되어야 합니다. 새 이슈로 보고해서는 안 되는 원본 버그 예시는 다음과 같습니다:
- 3D 객체가 사라지는 현상
- 뒤집힌 상태에서 연료가 떨어져 하늘로 떨어지는 항공기
프로젝트 로드맵
개발 과정은 안정성과 충실성을 보장하기 위해 엄격한 다단계 파이프라인을 따릅니다:
- 전체 역공학 → 어셈블러: 바이너리를 이해하는 초기 단계.
- 바이너리와 동일한 컴파일된 C: 어셈블러를 정확히 동일한 바이너리를 생성하는 C 코드로 변환.
- DOS 검증: 어셈블러 코드가 남아 있지 않은 상태에서 게임이 DOS(또는 DOSBox)에서 완전히 동작하는지 확인.
- 현대 포팅: DOS 버전이 검증되면 레포지토리를 포크하여 Linux와 Windows로의 포팅을 시작.
커뮤니티 관점
일부 사용자는 DOSBox를 통한 에뮬레이션이 존재함에도 불구하고 디컴파일의 필요성을 의문시했지만, 다른 이들은 좋아하는 타이틀에 대한 "네 가지 자유"를 확보하는 것이 중요하다고 강조했습니다. 또한 프로젝트는 게임의 가파른 학습 곡선과 비행 작전을 위해 원본 매뉴얼이 필요했던 기억을 떠올리는 옛 플레이어들의 향수에도 호응을 얻고 있습니다.
요약: F-15 Strike Eagle II 역공학 프로젝트는 1989년 DOS 게임의 모든 C 소스 코드를 재구성했으며, 현대 운영 체제로 포팅하기 전에 버그를 식별하기 위해 버전 v0.9.1에 대한 테스트 파일럿을 모집하고 있습니다.
제목: F-15 Strike Eagle II 역공학 프로젝트 v0.9.1 도달