Native iPhone port of Factorio 2.0.77

Run the original macOS ARM64 game code on iOS:
- tools/retarget.py: header-only Mach-O retargeting to an iOS dylib
- platform/native: UIKit host and macOS API shims (AppKit for SDL's
  Cocoa backend, CoreGraphics displays, CoreAudio device, Metal device
  properties, Wuffs PNG decoding, Steam and peripheral stubs)
- touch, overlay, iOS keyboard and hardware keyboard input
- tools/build_native.py: build, sign, install, data copy, launch
- docs: build guide, controls, architecture

Also includes the earlier static-translation research (ARM64 -> WASM ->
native) under docs/research, runtime/, tests/ and tools/.

No game files are included; the build reads them from a local install.
This commit is contained in:
SashaGoncharov19 committed 2026-10-23 15:27:58 +04:00
commit 51d085e865
89 files changed
+7999

No files matched your search

+56
View File
@@ -0,0 +1,56 @@
name: FactorioPort
options:
deploymentTarget:
iOS: '15.0'
targets:
FactorioPort:
type: application
platform: iOS
sources:
- main.m
dependencies:
- framework: ../../build/rng/libfactorio_rng_ios.a
embed: false
- framework: ../../build/version/libfactorio_version_ios.a
embed: false
- framework: ../../build/map-header/libfactorio_map_header_ios.a
embed: false
- framework: ../../build/save-layout/libfactorio_save_layout_ios.a
embed: false
- framework: ../../build/target-deserialiser/libfactorio_target_ios.a
embed: false
- framework: ../../build/deserialiser/libfactorio_deser_ios.a
embed: false
- sdk: UIKit.framework
- sdk: UniformTypeIdentifiers.framework
- sdk: libz.tbd
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: local.factorio.rng-prototype
PRODUCT_NAME: FactorioPort
CLANG_ENABLE_OBJC_ARC: YES
GENERATE_INFOPLIST_FILE: YES
INFOPLIST_KEY_CFBundleDisplayName: Factorio Port Prototype
INFOPLIST_KEY_UIFileSharingEnabled: YES
INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace: YES
INFOPLIST_KEY_UILaunchScreen_Generation: YES
HEADER_SEARCH_PATHS:
- $(SRCROOT)/../../build/rng
- $(SRCROOT)/../../build/version
- $(SRCROOT)/../../build/map-header
- $(SRCROOT)/../../runtime
- $(SRCROOT)/../../third_party/wabt/wasm2c
LIBRARY_SEARCH_PATHS:
- $(SRCROOT)/../../build/rng
- $(SRCROOT)/../../build/version
- $(SRCROOT)/../../build/map-header
- $(SRCROOT)/../../build/save-layout
- $(SRCROOT)/../../build/target-deserialiser
- $(SRCROOT)/../../build/deserialiser
GCC_PREPROCESSOR_DEFINITIONS:
- $(inherited)
- WASM_RT_USE_MMAP=0
- WASM_RT_MEMCHECK_BOUNDS_CHECK=1
TARGETED_DEVICE_FAMILY: '1,2'
MARKETING_VERSION: '0.1.0'
CURRENT_PROJECT_VERSION: '5'