mirror of
https://github.com/ARMSX2/ARMSX1.git
synced 2026-08-24 16:53:35 -07:00
- Added Podfile for iOS dependencies and configuration. - Created ARMSXModule for native module integration with React Native. - Implemented loadEmu method in ARMSXModule to start the emulator. - Configured Metro bundler for project structure. - Developed main App component with UI for emulator actions. - Added app.json for project metadata. - Registered main application component in index.js. - Defined package.json with project dependencies and scripts for running the app.
iOS host scaffold
This directory contains a minimal UIKit host for the shared libarmsx build. It embeds SDL2 as a dynamic framework and passes the host window into external_main.
Layout
Frameworks/– dropSDL2.xcframework(built from commit 385e995790930bc70ce43533f621caedec033895) and the iOS-builtlibarmsx.dylibhere.HostApp/– source, Info.plist and an XcodeGenproject.ymlthat describes a single-app target.bin/bios.bin– optional test BIOS is bundled (resource marked optional) so the iOS target can boot out-of-the-box during development.
Building libarmsx for iOS
./build.sh ios
This forces dynamic SDL, uses the iPhone SDK toolchain, and outputs bin/libarmsx.dylib for device (arm64). You can tweak IOS_SDK/IOS_DEPLOYMENT_TARGET as needed.
Generating/opening the app project
The HostApp/project.yml is XcodeGen-ready. After placing the frameworks:
cd ios/HostApp
xcodegen generate
open PSXEHost.xcodeproj
The target embeds both SDL2.xcframework and libarmsx.dylib into the app bundle and runs external_main on launch using the host UIWindow.
React Native brownfield overlay
- Install JS dependencies at the repo root:
npm install - Regenerate the Xcode project, then install pods:
cd ios/HostApp && xcodegen generate && pod install - Start Metro from the repo root (project root is
mobile/):npm run start - Open the workspace created by CocoaPods:
ios/HostApp/ARMSX.xcworkspace - The overlay component is registered as
ARMSXOverlaywith entrymobile/index.js; usenpm run bundle:iosto emit a release bundle intoios/HostApp/main.jsbundle.