TL;DR
- Madeira는 탈옥하지 않은 iPhone에서 Windows PC 게임을 실행하며, Wine(ARM64EC), FEX-Emu, DXMT를 단일 Mach 프로세스로 통합함.
- Thumper와 ULTRAKILL은 플레이 가능하고, Marvel Cosmic Invasion은 게임플레이에 도달하지만 예기치 않은 종료와 불안정한 조작 문제가 있음.
- 실행에는 JIT와 디버거 연결이 필요하며, 이 때문에 App Store 배포가 불가능하고 사이드로딩이 필요함.
- 무료 Apple ID 서명은 가능하지만 프로비저닝 프로파일이 7일 뒤 만료되어 매주 앱을 다시 빌드하고 설치해야 하며, 앱 컨테이너는 재설치 후에도 유지됨.
- 이 프로젝트는 제품이 아닌 연구 프로젝트이며, 포크별 라이선스와 AI 지원 코드의 업스트림 기여 제한을 확인해야 함.
Madeira
- 탈옥하지 않은 iPhone에서 Windows PC 게임을 실행하는 프로젝트임.
- Wine(ARM64EC), FEX-Emu의 x86-64에서 ARM64로의 변환, DXMT의 D3D11에서 Metal로의 변환을 결합함.
- iOS에서 단일 Mach 프로세스로 실행되며, 별도 프로세스 대신 스레드로
wineserver를 구동함.
상태
- Thumper와 ULTRAKILL은 플레이 가능함.
- Marvel Cosmic Invasion은 게임플레이 단계에 도달했지만, 예기치 않은 종료가 발생한 실행 사례가 있으며 조작도 아직 안정적이지 않음.
- 다른 게임도 게임플레이 단계까지 도달하지만 프레임 레이트가 낮음.
- 제품이 아닌 연구 프로젝트이므로 미완성된 부분, 타이틀별 차이, 호환성을 깨뜨리는 변경이 예상됨.
요구 사항
- 탈옥하지 않은 iPhone이 필요함. 개발은 A15 탑재 iPhone 13 Pro에서 진행됨.
- JIT가 필요하며, iOS에서는 디버거 연결이 요구됨. 이 프로젝트는
StikDebug를 사용함. - 서명용 Apple ID가 필요하며 무료 계정도 사용 가능함.
- 무료 계정의 프로비저닝 프로파일은 7일 뒤 만료되므로 앱을 매주 다시 빌드하고 설치해야 함.
- 앱 컨테이너는 재설치 후에도 유지되므로 접두사와 저장 데이터가 보존됨.
- JIT에 디버거 연결이 필요하므로 App Store를 통한 배포는 불가능하며, 사이드로딩으로 설치함.
빌드
- 빌드는 유닉스 측 Wine 라이브러리, ARM64EC PE 모듈, FEX, DXMT, iOS 앱 등 여러 빌드 체인으로 나뉨.
build/*/build.sh는 네이티브 구성 요소를 빌드하고, 앱은xcodebuild로 빌드함.- 저장소 복제에는 하위 모듈을 함께 가져오는
git clone --recurse-submodules <this repo>명령을 사용함. FEX,wine,research/dxmt는 iOS 작업이 포함된 포크를 가리키는 하위 모듈임. 업스트림 저장소를 복제하면 이 환경에서 빌드되지 않음.
라이선스
- 라이선스는 GPL-3.0-or-later이며 자세한 내용은
LICENSE에 있음. - 배포되는 파생물은 오픈소스로 유지해야 함.
업스트림 라이선스와 이 프로젝트 포크의 라이선스
- 업스트림 프로젝트의 라이선스는 다음과 같으며, 전문은
LICENSES/에 있고 업스트림 코드는 해당 업스트림에서 원래 라이선스로 계속 제공됨. - Wine과 GnuTLS: LGPL-2.1-or-later
- GMP와 Nettle: LGPL-3.0-or-later
- FEX-Emu와 DXMT: MIT
- rpmalloc: 0BSD
- 이 프로젝트에서 사용하는 포크는 업스트림과 라이선스가 동일하지 않으며, 각 포크의
LICENSE-MADEIRA.md에 적용 조건이 명시됨. wine: LGPL-2.1 §3에 따라 GPL-3.0-or-later로 재라이선스됨.FEX,dxmt: 업스트림 MIT 라이선스는 유지되며 수정 사항에는 GPL-3.0-or-later가 적용됨.rpmalloc: 업스트림 0BSD 라이선스는 유지되며 Will Faust의 수정 사항에는 GPL-3.0-or-later가 적용됨.- 라이선스 변경은 소급 적용되지 않음. 해당 포크는 이전부터 공개되어 있었으므로, 관대한 라이선스로 이미 취득한 자료는 그 라이선스에 따라 계속 이용 가능함.
- 구성 요소별 내역은
THIRD-PARTY-NOTICES.md에 있음. - Microsoft Visual C++ 런타임 DLL은 이 프로젝트에서 배포하지 않으므로 직접 제공해야 하며, 관련 안내는
tools/fetch-vcruntime.md에 있음.
업스트림 기여 관련 참고 사항
- 이 포크에는 AI 지원으로 작성된 작업이 상당량 포함됨.
- FEX-Emu의 기여 정책은 해당 프로젝트 기여용 코드 생성에 AI를 사용하지 못하도록 규정함.
- 따라서 이 포크에서 AI가 생성한 변경 사항을 업스트림에 제출하면 안 됨. MIT 라이선스는 포크 자체를 허용하지만, 기여 정책은 업스트림에 보내는 기여를 규율함.
- 변경을 제안하기 전에 각 업스트림의 기여 정책을 확인해야 함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요