DOS 게임 F-15 Strike Eagle II 리버싱 프로젝트, DOS 테스트 파일럿 모집

1 hour ago 2

(neuviemeporte.github.io)

  • 1989년 게임 F-15 Strike Eagle II의 원본 바이너리를 리버스 엔지니어링해 C 소스 코드를 재구성하는 프로젝트가 실제 플레이 테스트 단계에 들어감
  • egame, end를 포함한 모든 실행 파일의 코드와 데이터를 C로 옮겼고, 대부분의 어셈블리 전용 코드에는 C 대체 구현이 마련됨
  • 최신 릴리스 v0.9.1은 원본 게임 451.03 버전과 Desert Storm 확장팩에서 원본 실행 파일을 교체해 테스트할 수 있음
  • 새 실행 파일은 설정 화면을 거치지 않고 MCGA/VGA, 무음, 조이스틱 없음 상태를 가정하지만 미션 브리핑·비행·디브리핑은 작동해야 함
  • 목표가 원본과 같은 버그까지 보존하는 bug-for-bug 재구성이므로, 원본에도 있는 동작은 현재 버그 리포트 대상에서 제외됨

C 재구성 프로젝트의 진행 상황

  • F-15 Strike Eagle II 재구성은 원본 바이너리를 리버스 엔지니어링해 1989년 게임의 C 소스 코드를 다시 만드는 취미 프로젝트임
  • 한 달 조금 전만 해도 두 번째 실행 파일 egame을 C로 옮기는 데 몇 년이 더 걸릴 것처럼 보였고, 세 번째 실행 파일 end도 남아 있었음
  • 현재는 다음 단계까지 진행됨
    • 모든 실행 파일의 C 코드 재구성 완료
    • 모든 데이터를 어셈블리에서 C로 이동
    • 대부분의 어셈블리 전용 코드에 기능적으로 동등한 C 대체 구현 작성
    • 대부분의 루틴과 데이터 구조에 의미 있는 이름 부여
    • 가까운 시일 내 포팅 프로젝트용 저장소 분기 검토
  • 재구성된 opcode가 원본에 충실한지는 도구로 확인하지만, 데이터 레이아웃 관련 버그까지 모두 잡지는 못함
  • 이제 opcode 일치 확인을 넘어 실제로 실행되는 게임을 유지해야 하므로 외부 테스트가 필요해짐

테스트 방법과 보고할 문제

  • 테스트 대상은 최신 릴리스 v0.9.1
  • 원본 게임 451.03 버전과 Desert Storm 확장팩이 있는 게임 폴더에 새 실행 파일을 넣어 원본 실행 파일을 교체하면 됨
    • 교체 전 백업이 필요함
    • 새 f15.exe 대신 원본 f15.com이 실행되지 않도록 원본 f15.com을 제거해야 할 수 있음
  • 새 실행 파일은 설정 화면으로 들어가지 않음
    • MCGA/VGA 디스플레이를 가정함
    • 사운드 없음
    • 조이스틱 없음
  • 테스트 중 문제가 있으면 GitHub 이슈로 보고할 수 있음
    • 충돌
    • 그래픽 글리치
    • 키 입력 미작동
    • 필요한 경우 dosbox에서 Ctrl+F5로 찍은 스크린샷 첨부
    • 문제가 발생하기 전 어떤 행동을 했는지 적으면 재현과 수정에 도움이 됨
  • 이 프로젝트는 bug-for-bug 재구성을 목표로 하므로 원본 게임에도 있는 동작은 유지해야 함
    • 원본에는 3D 오브젝트가 사라지는 문제, 뒤집힌 상태에서 연료가 없을 때 비행기가 하늘 쪽으로 떨어지는 문제 등이 있음
    • 보고 전 원본에서도 같은 문제가 발생하는지 확인하는 편이 좋음
Read Entire Article