initial test release

This commit is contained in:
Jeen
2026-06-01 23:28:04 +02:00
commit bf515bddc8
33 changed files with 2960 additions and 0 deletions
+77
View File
@@ -0,0 +1,77 @@
name: Update Source
on:
workflow_dispatch:
inputs:
include_prereleases:
description: "Include prerelease upstream releases"
required: false
default: "false"
type: choice
options:
- "false"
- "true"
schedule:
- cron: "17 */6 * * *"
permissions:
contents: write
concurrency:
group: update-source
cancel-in-progress: false
jobs:
update-source:
runs-on: ubuntu-latest
env:
ARMSX2_PUBLIC_BASE_URL: https://j1coding.github.io/Armsx2-Repo
INCLUDE_PRERELEASES: ${{ inputs.include_prereleases || 'false' }}
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
token: ${{ secrets.SOURCE_UPDATE_TOKEN || secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "22"
cache: npm
- name: Install dependencies
run: npm ci
- name: Sync latest upstream IPA
id: sync
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm run sync:upstream
- name: Regenerate source files
if: steps.sync.outputs.changed == 'true'
run: npm run generate:source
- name: Validate generated source
if: steps.sync.outputs.changed == 'true'
run: |
npm run check:source
npm run validate:source
- name: Commit and push update
if: steps.sync.outputs.changed == 'true'
run: |
if git diff --quiet --exit-code; then
echo "No generated changes to commit."
exit 0
fi
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add apps.json checksums.json public/ ipas/ assets/ index.html
git commit -m "Update ARMSX2 iOS source: ${{ steps.sync.outputs.version }}"
git push origin HEAD:${{ github.ref_name }}
+28
View File
@@ -0,0 +1,28 @@
name: Validate
on:
push:
pull_request:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "22"
cache: npm
- name: Install dependencies
run: npm ci
- name: Check generated files
run: npm run check:source
- name: Validate source schema
run: npm run validate:source
+5
View File
@@ -0,0 +1,5 @@
node_modules/
.vite/
dist/
coverage/
npm-debug.log*
View File
+18
View File
@@ -0,0 +1,18 @@
# ARMSX2 iOS
Custom source repository for the ARMSX2 iOS port. Add it to your sideloading app to install and update ARMSX2 on iOS.
[![Install with LiveContainer](https://img.shields.io/badge/Install-LiveContainer-5A1AE5?style=for-the-badge)](livecontainer://source?url=https%3A%2F%2Fj1coding.github.io%2FArmsx2-Repo%2Fapps.json)
[![Add to SideStore](https://img.shields.io/badge/Add-SideStore-9670E9?style=for-the-badge)](sidestore://source?url=https%3A%2F%2Fj1coding.github.io%2FArmsx2-Repo%2Fapps.json)
[![Add to Feather](https://img.shields.io/badge/Add-Feather-1A50E5?style=for-the-badge)](feather://source/https%3A%2F%2Fj1coding.github.io%2FArmsx2-Repo%2Fapps.json)
## Requirements
- A JIT-capable setup is required.
- You must provide your own PS2 BIOS and legally dumped ISO files.
## Manual Source URL
```text
https://j1coding.github.io/Armsx2-Repo/apps.json
```
+37
View File
@@ -0,0 +1,37 @@
{
"name": "ARMSX2 iOS",
"identifier": "com.j1coding.armsx2.ios",
"sourceURL": "https://j1coding.github.io/Armsx2-Repo/apps.json",
"apps": [
{
"name": "ARMSX2 iOS",
"bundleIdentifier": "com.armsx2.ios",
"developerName": "ARMSX2",
"subtitle": "PlayStation 2 emulation, built for iOS.",
"localizedDescription": "ARMSX2 brings PlayStation 2 emulation to iOS with an ARM64-focused build, controller-friendly play, and local-network support for compatible titles.\n\nA JIT-capable setup is required. Performance and compatibility vary by device, iOS version, game, and sideloading environment. You must provide your own BIOS and game backups.",
"iconURL": "https://j1coding.github.io/Armsx2-Repo/assets/icon.png",
"screenshotURLs": [
"https://j1coding.github.io/Armsx2-Repo/assets/screenshots/01-library.png",
"https://j1coding.github.io/Armsx2-Repo/assets/screenshots/02-settings.png",
"https://j1coding.github.io/Armsx2-Repo/assets/screenshots/03-gameplay.png"
],
"tintColor": "#2F6FAD",
"versions": [
{
"version": "1.2.2",
"date": "2026-06-01",
"localizedDescription": "Updated to ARMSX2 iOS 1.2.2.\n\nUpdated ARMSX2 iOS version display to 1.2.2.\nAdded battery percentage to the performance overlay.\nAdded device heat status to the performance overlay.\nAdded app RAM usage to the performance overlay.\nAdded Low Power Mode indicator when enabled.\nAdded color warnings for heat and low battery states.\nAdded new OSD/Overlay settings page.\nAdded OSD preset controls for Off, Simple, Detail, and Full.\nAdded OSD position setting.\nImproved performance overlay readability.",
"downloadURL": "https://j1coding.github.io/Armsx2-Repo/ipas/ARMSX2-iOSv1.2.2.ipa",
"size": 14005979,
"minOSVersion": "18.0"
}
],
"permissions": [
{
"type": "network",
"usageDescription": "ARMSX2 uses local network access for PS2 online play through DEV9 sockets."
}
]
}
]
}
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

+17
View File
@@ -0,0 +1,17 @@
{
"sourceIdentifier": "com.j1coding.armsx2.ios",
"sourceURL": "https://j1coding.github.io/Armsx2-Repo/apps.json",
"generatedAt": "2026-06-01T00:14:00.000Z",
"files": [
{
"fileName": "ARMSX2-iOSv1.2.2.ipa",
"bundleIdentifier": "com.armsx2.ios",
"version": "1.2.2",
"buildVersion": "2",
"date": "2026-06-01",
"downloadURL": "https://j1coding.github.io/Armsx2-Repo/ipas/ARMSX2-iOSv1.2.2.ipa",
"size": 14005979,
"sha256": "9bd484af8ae1289693a64d6d83a869fc5bc6acece7369a01a68f697307b2dd47"
}
]
}
+1017
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
+13
View File
@@ -0,0 +1,13 @@
{
"app": {
"subtitle": "PlayStation 2 emulation, built for iOS.",
"localizedDescription": "ARMSX2 brings PlayStation 2 emulation to iOS with an ARM64-focused build, controller-friendly play, and local-network support for compatible titles.\n\nA JIT-capable setup is required. Performance and compatibility vary by device, iOS version, game, and sideloading environment. You must provide your own BIOS and game backups."
},
"screenshots": {
"directory": "assets/screenshots"
},
"releaseNotes": {
"upstreamRepository": "ARMSX2/ARMSX2",
"fallback": "Updated to ARMSX2 iOS {version}.\n\nIncludes the latest published iOS build, verified download metadata, and local-network permission disclosure for supported online features."
}
}
+163
View File
@@ -0,0 +1,163 @@
{
"name": "armsx2-ios-source",
"version": "2.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "armsx2-ios-source",
"version": "2.0.0",
"dependencies": {
"adm-zip": "^0.5.16",
"bplist-parser": "^0.3.2",
"plist": "^3.1.0"
},
"devDependencies": {
"ajv": "^8.17.1"
},
"engines": {
"node": ">=22"
}
},
"node_modules/@xmldom/xmldom": {
"version": "0.9.10",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz",
"integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==",
"license": "MIT",
"engines": {
"node": ">=14.6"
}
},
"node_modules/adm-zip": {
"version": "0.5.17",
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.17.tgz",
"integrity": "sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==",
"license": "MIT",
"engines": {
"node": ">=12.0"
}
},
"node_modules/ajv": {
"version": "8.20.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
"integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
"require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"license": "MIT"
},
"node_modules/big-integer": {
"version": "1.6.52",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
"integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
"license": "Unlicense",
"engines": {
"node": ">=0.6"
}
},
"node_modules/bplist-parser": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
"integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
"license": "MIT",
"dependencies": {
"big-integer": "1.6.x"
},
"engines": {
"node": ">= 5.10.0"
}
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true,
"license": "MIT"
},
"node_modules/fast-uri": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz",
"integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/fastify"
},
{
"type": "opencollective",
"url": "https://opencollective.com/fastify"
}
],
"license": "BSD-3-Clause"
},
"node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
"license": "MIT"
},
"node_modules/plist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.1.1.tgz",
"integrity": "sha512-ZIfcLJC+7E7FBFnDxm9MPmt7D+DidyQ26lewieO75AdhA2ayMtsJSES0iWzqJQbcVRSrTufQoy0DR94xHue0oA==",
"license": "MIT",
"dependencies": {
"@xmldom/xmldom": "^0.9.10",
"base64-js": "^1.5.1",
"xmlbuilder": "^15.1.1"
},
"engines": {
"node": ">=10.4.0"
}
},
"node_modules/require-from-string": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/xmlbuilder": {
"version": "15.1.1",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
"integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
"license": "MIT",
"engines": {
"node": ">=8.0"
}
}
}
}
+24
View File
@@ -0,0 +1,24 @@
{
"name": "armsx2-ios-source",
"version": "2.0.0",
"private": true,
"type": "module",
"description": "ARMSX2 iOS source generator for LiveContainer, SideStore, and Feather.",
"engines": {
"node": ">=22"
},
"scripts": {
"generate:source": "node scripts/generate-source.js",
"check:source": "node scripts/generate-source.js --check",
"sync:upstream": "node scripts/sync-upstream-ipa.js",
"validate:source": "node scripts/validate-source.js"
},
"dependencies": {
"adm-zip": "^0.5.16",
"bplist-parser": "^0.3.2",
"plist": "^3.1.0"
},
"devDependencies": {
"ajv": "^8.17.1"
}
}
View File
+37
View File
@@ -0,0 +1,37 @@
{
"name": "ARMSX2 iOS",
"identifier": "com.j1coding.armsx2.ios",
"sourceURL": "https://j1coding.github.io/Armsx2-Repo/apps.json",
"apps": [
{
"name": "ARMSX2 iOS",
"bundleIdentifier": "com.armsx2.ios",
"developerName": "ARMSX2",
"subtitle": "PlayStation 2 emulation, built for iOS.",
"localizedDescription": "ARMSX2 brings PlayStation 2 emulation to iOS with an ARM64-focused build, controller-friendly play, and local-network support for compatible titles.\n\nA JIT-capable setup is required. Performance and compatibility vary by device, iOS version, game, and sideloading environment. You must provide your own BIOS and game backups.",
"iconURL": "https://j1coding.github.io/Armsx2-Repo/assets/icon.png",
"screenshotURLs": [
"https://j1coding.github.io/Armsx2-Repo/assets/screenshots/01-library.png",
"https://j1coding.github.io/Armsx2-Repo/assets/screenshots/02-settings.png",
"https://j1coding.github.io/Armsx2-Repo/assets/screenshots/03-gameplay.png"
],
"tintColor": "#2F6FAD",
"versions": [
{
"version": "1.2.2",
"date": "2026-06-01",
"localizedDescription": "Updated to ARMSX2 iOS 1.2.2.\n\nUpdated ARMSX2 iOS version display to 1.2.2.\nAdded battery percentage to the performance overlay.\nAdded device heat status to the performance overlay.\nAdded app RAM usage to the performance overlay.\nAdded Low Power Mode indicator when enabled.\nAdded color warnings for heat and low battery states.\nAdded new OSD/Overlay settings page.\nAdded OSD preset controls for Off, Simple, Detail, and Full.\nAdded OSD position setting.\nImproved performance overlay readability.",
"downloadURL": "https://j1coding.github.io/Armsx2-Repo/ipas/ARMSX2-iOSv1.2.2.ipa",
"size": 14005979,
"minOSVersion": "18.0"
}
],
"permissions": [
{
"type": "network",
"usageDescription": "ARMSX2 uses local network access for PS2 online play through DEV9 sockets."
}
]
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Some files were not shown because too many files have changed in this diff Show More