From 591df2a9243fe294f7fc058f35c107cf2a5d4300 Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Thu, 20 Aug 2026 22:58:57 -0400 Subject: [PATCH 01/11] Add GitHub Actions workflow for iOS build --- .github/workflows/main.yml | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..989feba --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,45 @@ +name: Build iOS + +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + build: + runs-on: macos-latest + + steps: + - uses: actions/checkout@v4 + + - name: Show Xcode version + run: xcodebuild -version + + - name: List project + run: | + xcodebuild -project StosDebug.xcodeproj -list + + - name: Build + run: | + xcodebuild \ + -project StosDebug.xcodeproj \ + -scheme StosDebug \ + -configuration Release \ + -sdk iphoneos \ + -derivedDataPath build \ + CODE_SIGNING_ALLOWED=NO \ + CODE_SIGNING_REQUIRED=NO \ + CODE_SIGN_IDENTITY="" + + - name: Create unsigned ipa + run: | + mkdir Payload + cp -R build/Build/Products/Release-iphoneos/*.app Payload/ + zip -r StosDebug.ipa Payload + + - name: Upload ipa + uses: actions/upload-artifact@v4 + with: + name: StosDebug.ipa + path: StosDebug.ipa From 8e8591d0ab2eef674996960480ffcb6154d6e46d Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Sun, 23 Aug 2026 13:28:45 -0400 Subject: [PATCH 02/11] Add legacy script request output classic script. --- StosDebug/Backend/ScriptSupport/Scripts.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/StosDebug/Backend/ScriptSupport/Scripts.swift b/StosDebug/Backend/ScriptSupport/Scripts.swift index 4a0a0e8..b79b6f5 100644 --- a/StosDebug/Backend/ScriptSupport/Scripts.swift +++ b/StosDebug/Backend/ScriptSupport/Scripts.swift @@ -14,7 +14,7 @@ struct Scripts: Equatable { let persistent: Bool static var customScript: [String: Scripts] = [:] - + static let legacy = Scripts("classic") static let classic = Scripts("classic") static let classic_geode = Scripts("classic_geode") static let universal = Scripts("universal") From c7b993bd14588a0c7be2556cb4f4c33a834935c4 Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Mon, 24 Aug 2026 17:59:43 -0400 Subject: [PATCH 03/11] Remove a line --- StosDebug/Backend/ScriptSupport/Scripts.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/StosDebug/Backend/ScriptSupport/Scripts.swift b/StosDebug/Backend/ScriptSupport/Scripts.swift index b79b6f5..4a0a0e8 100644 --- a/StosDebug/Backend/ScriptSupport/Scripts.swift +++ b/StosDebug/Backend/ScriptSupport/Scripts.swift @@ -14,7 +14,7 @@ struct Scripts: Equatable { let persistent: Bool static var customScript: [String: Scripts] = [:] - static let legacy = Scripts("classic") + static let classic = Scripts("classic") static let classic_geode = Scripts("classic_geode") static let universal = Scripts("universal") From 5cc962d6bc3bb4436807d377bad2069b11bc8502 Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Mon, 24 Aug 2026 18:02:51 -0400 Subject: [PATCH 04/11] Add .DS_Store to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store From 6afc2051a21b32b5d0d56a677e761ac116ecf3cf Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Thu, 3 Sep 2026 11:09:04 -0400 Subject: [PATCH 05/11] Delete StosDebug/Backend/.DS_Store --- StosDebug/Backend/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 StosDebug/Backend/.DS_Store diff --git a/StosDebug/Backend/.DS_Store b/StosDebug/Backend/.DS_Store deleted file mode 100644 index 471a5eab2b80389559aa971e8bbb91c956c21ede..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!Ab)$5S_HuZmB{K3OxqA7OYhZ;$^Az2VBvEO6|IfF0M)Gw)Rj8d)6QFOZ*;Z zl2j?xiwBW11CuwI%xuWZl1TtSbjHyhKn(yqRKh|9n{R~1NtdMHJcPo0LqP;FD7b@U zDViPskpbGf4d~*o4b0Ac?OzO8ILQWKszZ!<3kPYEjhfAOQ7D$y*2`Ymt9m!VgPsJV z{%D+a`ok;gook(jbGsj2B=MwI+d9!|)K64AGzm!*W61Soq9Q%%=&_12lN;Cpui{mD zwfc10-al-}){C^bBj2FB5W$6O%?8mA#6JOrHk_&<`!)_2s1N&$IUF<3q_dO(JxIn2;U;N z%m6d6$UxC{YgGSFe}4ZjCUK7$UT?eNd}_tFt>;v6ut-;8n|Hw{*-|at*K7` From 83db7cd07df919ff48eb7eb65709ece7efa7fe04 Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Thu, 3 Sep 2026 11:09:24 -0400 Subject: [PATCH 06/11] Delete StosDebug/.DS_Store --- StosDebug/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 StosDebug/.DS_Store diff --git a/StosDebug/.DS_Store b/StosDebug/.DS_Store deleted file mode 100644 index 5e78ad3b66766e9e1c543cafe2feda7b210123d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%Sr=55UkdK0WUe`IKSW@3`_ii{D5LY4v`fEJ?|;s<)>NwKnxo%f)}ZV?waZ8 znq}*-y$!&Ix7{7E0dOh|-eABZo^brm z9}ju!Wty^5Knh3!DIf);z%Lc>-b-8FCMrq+DIf*D6!7muqdWG(DKS1B3^4)_7fgq7 z9kT?nd4kvrr$lCGmQ-R=twsz>I`ggSdf}9qbXW}^R!_E?P%NI#`&*R5dZMBfkOJol zT<3P>{r{f+!~B0v(oPCUfq$idEjHWDz*nl?I(s?qwT=Ej_nHs78`nW$h;~ejcFc{p e<8>5eUGp{1d*PHAbmoIj)X#wHB9j7tt-vR2=oL}` From dc1562506adcffaa2d3452d2f8ac2288601b91cb Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Thu, 3 Sep 2026 11:10:10 -0400 Subject: [PATCH 07/11] Delete .DS_Store --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index f5bdbd9219045cba1c6d4e70c856c86decb489d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!A{#i5S;~6Hib%&3KHC0_0S6{2}PiaiwW)z;Ho{)Dvfaz+&W$>b_h}w;X8Z< z-_T1B+={qz0{);s(L-l;7u6_1N-t4c?MSn4ygTFBdDiZF0f5!IK^343034OjdW_8o zp>fh7nbJKJ$K*R)Xo3%2X!*S%Z_{BIFbw={4A9ywfd?4~NTINP)5MR2kE7rGBns24 zQn_YR)7H$RSw73>_($(R^t`N*b<!ygA;!V&D_2Mch!O`wC;=VDc0ogI%KS*-NgkNKas zs?ss@w#D!2|2(?L2w0L4oVbz6FrXI>pPNiNlf^J#82E=6p#8x{C3H0A3gy;;jl2RN zTG%ZGZMsWPjIGhpm@C8)6sAHERVdR}45q@d-`0MP#$2Ha2c|C{OlM~LhQefae7`N- zfjJ6IYZx#L+-G1~J(lVGfAjGD|9+5pG7K07{woHU<$7)nOVVfSP;qqD+NhsUNysl( mC_}K($FVf%C|*L9f@3xrh>pfwA@-n{9|1{&X$%7sW#AXA2&jJm From 79dea44e11a33284821beee0f4ab1dbdb0884561 Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Thu, 3 Sep 2026 11:12:28 -0400 Subject: [PATCH 08/11] Delete StosDebug/Backend/Dependencies/.DS_Store --- StosDebug/Backend/Dependencies/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 StosDebug/Backend/Dependencies/.DS_Store diff --git a/StosDebug/Backend/Dependencies/.DS_Store b/StosDebug/Backend/Dependencies/.DS_Store deleted file mode 100644 index 2eafd85abfbb758d97617ca5fcf5b17cc7258aa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO-sW-5Pe&FsCeno&=R>74ER+?yhJH>IMtiHQq7eQ=ry2pkEH$pc*rTMa!4^-9 zJLan};hXc!s8`O!`jS4RCU(l%v^wt3=6vgO{&sz*uu(C`U?3O>27ZwNp4lRU3&XI% zKrj#t>==;mL#7Irj-8=?I%xC?K~W=I zXK3k2Ix_q5k(1w0l8#P))^McKFl;ao4D2&-X4Rpb|JPsN|M!!k77PRf|B8Xsug7)8 zCHdKUusAtuGxdQgB5|GJE`iWw_M@g-G-{wxJz>DU?4Lx~>&r6Ei(@TUxX0Bw&y AI{*Lx From cad09df5a4fbf6d0434cff1db60bf5664e37cc67 Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Thu, 3 Sep 2026 11:22:23 -0400 Subject: [PATCH 09/11] Remove universal+manic script and manic case Removed 'universal+manic' script and related case from Apps enum. --- StosDebug/Backend/ScriptSupport/Scripts.swift | 4 ---- 1 file changed, 4 deletions(-) diff --git a/StosDebug/Backend/ScriptSupport/Scripts.swift b/StosDebug/Backend/ScriptSupport/Scripts.swift index 4a0a0e8..d3401cd 100644 --- a/StosDebug/Backend/ScriptSupport/Scripts.swift +++ b/StosDebug/Backend/ScriptSupport/Scripts.swift @@ -18,7 +18,6 @@ struct Scripts: Equatable { static let classic = Scripts("classic") static let classic_geode = Scripts("classic_geode") static let universal = Scripts("universal") - static let `universal+manic` = Scripts("universal+manic") static func custom(name: String, url: URL) -> Scripts { Scripts(name, customURL: url) @@ -43,7 +42,6 @@ struct Scripts: Equatable { } enum Apps: String, CaseIterable { - case manic case melonx case amethyst case utm @@ -54,8 +52,6 @@ struct Scripts: Equatable { var script: Scripts { switch self { - case .manic: - return .`universal+manic` case .utm, .dolphin, .flycast: return .classic case .geode: From 33259b6f4d8991c0086897fbf2daebe28c8729ff Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Thu, 3 Sep 2026 11:39:44 -0400 Subject: [PATCH 10/11] Delete StosDebug/scripts/universal+manic.jitrpl --- StosDebug/scripts/universal+manic.jitrpl | 58 ------------------------ 1 file changed, 58 deletions(-) delete mode 100644 StosDebug/scripts/universal+manic.jitrpl diff --git a/StosDebug/scripts/universal+manic.jitrpl b/StosDebug/scripts/universal+manic.jitrpl deleted file mode 100644 index bbe6d26..0000000 --- a/StosDebug/scripts/universal+manic.jitrpl +++ /dev/null @@ -1,58 +0,0 @@ -// -// universal+manic.stosrpl -// StosDebug -// -// Created by Stossy11 on 28/3/2026. -// - -/* - Hello! - so essentially, to save on like making 700 scripts based on the same thing, - i have devised this .jitrpl (JIT replace) file format. it allows replacement of parts of a script ahead of time (AOT). - - syntax: - :RPL - function JIT26HandleBrk0x69(brkResponse) - :WITH - function COOLWOOWOW(brkResponse) - :ENDRPL - - now with RunJSViewModel.applyPatch, it will replace whats in :RPL with whats in :WITH and so saves on having to copy the entire script for nothing - - will eventually make it so then you could import +.jitrpl into StosDebug and will allow you to run the edited scripts - (scriptname being built-in scripts, yourscript being whatever you want your script to be called) - */ - -:RPL -function JIT26HandleBrk0x69(brkResponse) { - // in the old script we chose 0x69, so now we check here and return error - // if you wish to keep using this, you can set your own handler like `legacyCommands[0x69] = yourHandler;` using BreakSendJITScript - log(`Error: It seems you are using legacy breakpoint 0x69. Please set your legacy handler using \`legacyCommands[0x69] = yourHandler;\` or migrate to universal jitcalls to use this script. The function will now return 0xE0000069.`); - let putX0Response = send_command(`P0=E0000069;thread:${tid};`); - log(`putX0Response = ${putX0Response}`); -} -:WITH -function JIT26HandleBrk0x69(brkResponse) { - let jitPageAddress = x0; - // If x1 is 0, use the default size of 64KB (0x10000). - // Manic EMU's CodeBlock typically requests large memory chunks (tens of MB for CPU JIT) - // but also asks for smaller ones (like 4KB/16KB for SpinLock and Shader JIT). - let size = x1 > 0n ? x1 : 0x10000n; - - log(`[Manic EMU] ----------------------------------------`); - log(`[Manic EMU] JIT Request`); - log(`[Manic EMU] Address: 0x${jitPageAddress.toString(16)}`); - log(`[Manic EMU] Size: 0x${size.toString(16)}`); - - // Call prepare_memory_region to mark the memory as executable. - let prepareJITPageResponse = prepare_memory_region(Number(jitPageAddress), Number(size)); - log(`[Manic EMU] prepare_memory_region result: ${prepareJITPageResponse}`); - - // Set PC+4 to continue program execution - let pcPlus4 = numberToLittleEndianHexString(pc + 4n); - send_command(`P20=${pcPlus4};thread:${tid};`); - - log(`[Manic EMU] Resumed execution at PC=0x${(pc + 4n).toString(16)}`); - log(`[Manic EMU] ----------------------------------------`); -} -:ENDRPL From 7428465879ed5ca8f1e0232fca58935ad86412db Mon Sep 17 00:00:00 2001 From: JMillz269 Date: Thu, 3 Sep 2026 11:54:48 -0400 Subject: [PATCH 11/11] Remove 'scripts/universal+manic.jitrpl' from xcode project --- StosDebug.xcodeproj/project.pbxproj | 2 -- 1 file changed, 2 deletions(-) diff --git a/StosDebug.xcodeproj/project.pbxproj b/StosDebug.xcodeproj/project.pbxproj index 6d86007..22b40ac 100644 --- a/StosDebug.xcodeproj/project.pbxproj +++ b/StosDebug.xcodeproj/project.pbxproj @@ -30,7 +30,6 @@ scripts/classic_geode.js, scripts/classic.js, scripts/universal.js, - "scripts/universal+manic.jitrpl", ); target = 4E8D91592F76337600F5E970 /* StosDebug */; }; @@ -44,7 +43,6 @@ scripts/classic_geode.js, scripts/classic.js, scripts/universal.js, - "scripts/universal+manic.jitrpl", ); }; /* End PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet section */