ZaneYork / SMAPI-Android-Installer

SMAPI Installer for Android
GNU Lesser General Public License v3.0
658 stars 56 forks source link

SDV 1.5 mobile update #246

Open gurkangurkangurkan opened 1 year ago

gurkangurkangurkan commented 1 year ago

Edit: The original question was, will SMAPI mobile be updated once the 1.5 mobile update comes?

Yokutso commented 1 year ago

Hi! I was wondering, do you think is it possible to go back to the old way by replacing .xnb files in the content file, waiting for your update to come out? I just tried but i don't see any "content" folder. And i can't extract obb too. Maybe it's due to the rebuilding ? I just want to replace sprites and portraits in my case

The SDV1.5 was built with two splited apks, use MT manager to extract splited apks.

THANK YOU SO MUCH!! it worked !! i'm so happy lol Good luck for the update and thank you for your great work :)

Omg. Can you please provide a quick step by step on how we can get it working again until the update ? Please!

Sure, but it's only working with .XNB mods i think, like portraits/sprites replacer. A lot of mods are .dll, and need SMAPI. Here's what i did: With MT manager i extracted the apk, so i got an "apks" file, countaining both parts. Open it and extract both. The split_content.apk is the one you're looking for. Open it and replace whatever you want in the content folder. Before replacing your modified apk into the "apks", you need to re-sign it and ALSO the base.apk in order for them to have the same certificate. You can do it in MT manager. After that, you can install your .apks and that's all edit if you need help add me on discord Tofox#3191

Eyyy it worked but, what happens if the app on the play store updated? will I do the same again?

Yea actually you have to do it again. What I do is, I have my "content" modded folder in my phone, so when I update my game, I re-extract the apk and i juste remplace the content folder into my modded content folder and I install the apks. Btw, in MT manager, you can delete "META-INF" and check "auto-sign" when you do it, on both apk (main and split_content). It saves time, and you don't need to manually extract and re-sign them.

BUT don't forget to do a BACKUP of your save file !! When you uninstall the game, your save is erased. I had to restart a new game lol

ghost commented 1 year ago

I still don't understand what you are saying :D

Samantha802 commented 1 year ago

Tasks

* [x]  Uncompress blob file and decompile it

* [ ]  Update [Android SMAPI](https://github.com/ZaneYork/SMAPI) source to latest [3.18.1 release](https://github.com/Pathoschild/SMAPI/tree/3.18.1)

* [ ]  Ensure [Loader](https://github.com/ZaneYork/SMAPI/tree/develop/src/Loader) project can launch the Modded game

* [ ]  Patch classes.dex to redirect launcher to StardewModdingAPI.dll

* [ ]  Make sure patched game works well

* [ ]  Make sure mods works well

* [ ]  Update [SMAPI-Android-Installer](https://github.com/ZaneYork/SMAPI-Android-Installer) patch logic to produce a patched apk

The most important task is always the planning. You are amazing! Thank you for all your hard work.

Nluru commented 1 year ago

I'd like to still use the old version of Smapi, but it says it can't download. Do I need an older version of Stardew to get it?

AnotherPillow commented 1 year ago

I'd like to still use the old version of Smapi, but it says it can't download. Do I need an older version of Stardew to get it?

Yes, because if you could use it on 1.5 there would be no need for an update.

howiejr2000 commented 1 year ago

I can't use it because of the Stardew valley update

Nluru commented 1 year ago

I'd like to still use the old version of Smapi, but it says it can't download. Do I need an older version of Stardew to get it?

Yes, because if you could use it on 1.5 there would be no need for an update.

Ah ok, thank you

ghost commented 1 year ago

Hi is there any progress

Pathoschild commented 1 year ago

The tentative estimate for the SMAPI update is March 2023, but there's no guarantee since it's still in early development. ZaneYork posted a checklist of tasks to follow progress.

Comments here notify everyone watching for an update. If you have general questions, you can ask on the Stardew Valley Discord instead, and we'll be happy to help. Please don't post comments here like "how is this going" or "can you do it faster"; it'll be done as soon as possible, and a comment will be posted here when there's news. You can click 'subscribe' under notifications on the right sidebar to get an email alert when that happens.

ghost commented 1 year ago

@Pathoschild thanks

ghost commented 1 year ago

zane york my trust is endless

ghost commented 1 year ago

Discord link ?

ghost commented 1 year ago

@Pathoschild Can you give a discord link please?

evenheizer commented 1 year ago

@Pathoschild Can you give a discord link please?

https://discord.gg/stardewvalley

ghost commented 1 year ago

Thank

Gelordes commented 1 year ago

Hi! I was wondering, do you think is it possible to go back to the old way by replacing .xnb files in the content file, waiting for your update to come out? I just tried but i don't see any "content" folder. And i can't extract obb too. Maybe it's due to the rebuilding ? I just want to replace sprites and portraits in my case

The SDV1.5 was built with two splited apks, use MT manager to extract splited apks.

THANK YOU SO MUCH!! it worked !! i'm so happy lol Good luck for the update and thank you for your great work :)

Omg. Can you please provide a quick step by step on how we can get it working again until the update ? Please!

Sure, but it's only working with .XNB mods i think, like portraits/sprites replacer. A lot of mods are .dll, and need SMAPI. Here's what i did: With MT manager i extracted the apk, so i got an "apks" file, countaining both parts. Open it and extract both. The split_content.apk is the one you're looking for. Open it and replace whatever you want in the content folder. Before replacing your modified apk into the "apks", you need to re-sign it and ALSO the base.apk in order for them to have the same certificate. You can do it in MT manager. After that, you can install your .apks and that's all edit if you need help add me on discord Tofox#3191

Eyyy it worked but, what happens if the app on the play store updated? will I do the same again?

Yea actually you have to do it again. What I do is, I have my "content" modded folder in my phone, so when I update my game, I re-extract the apk and i juste remplace the content folder into my modded content folder and I install the apks. Btw, in MT manager, you can delete "META-INF" and check "auto-sign" when you do it, on both apk (main and split_content). It saves time, and you don't need to manually extract and re-sign them.

BUT don't forget to do a BACKUP of your save file !! When you uninstall the game, your save is erased. I had to restart a new game lol

Got it thx, now that the game have a bug fix update, gonna do this.

xdlistic commented 1 year ago

I can't wait for this to come out.

And thank you for making it possible for us mobile users... I can't describe how happy I am to finally play some mods that doesn't work before.

Goodluck, @ZaneYork

KingBob10275 commented 1 year ago

i have a small doubt please will all the pc mods that are updated to 1.5 in pc can be used in Android too? I mean can we use 1.5 pc mods on Android without requiring seperate Android version?

Vylesh commented 1 year ago

i have a small doubt please will all the pc mods that are updated to 1.5 in pc can be used in Android too? I mean can we use 1.5 pc mods on Android without requiring seperate Android version

Yes. Already we are using pc mods on mobile smapi. But previous version was old for new versions. So we as using compitable version of mods for SDV 1.4. But with version we can use new version of mods

ghost commented 1 year ago

@gurkangurkangurkan selam türk müsün ?

ghost commented 1 year ago

@ZaneYork How are you my friend, you're taking a break from working, you don't need to work all the time, rest in between sorry for typos

ghost commented 1 year ago

@ZaneYork zane york i love you so much

ghost commented 1 year ago

@BumbleBeach What does it mean ?

Pathoschild commented 1 year ago

This ticket tracks development updates, it's not a chat room. Posting comments will notify ZaneYork and everyone watching for an update, and make it harder to find the actual information.

If you have general questions or comments, please post in the Stardew Valley Discord instead. The update will be done as soon as possible, and a comment will be posted here when there's news. You can click 'subscribe' under notifications on the right sidebar to get an email alert when that happens.

To recap, the tentative estimate for the SMAPI update is March 2023, but there's no guarantee since it's still in early development. ZaneYork posted a checklist of tasks to follow progress.

Kyeon3D commented 1 year ago

@ZaneYork Any update on SMAPI 1.5 mobile??

homeofpoe commented 1 year ago

This isn't the place to ask for status updates. Check out the comment history here for more information and estimated time frames. There are also suggestions to join the Discord if you are interested.

If there are updates, they will likely be shared. More info in this thread history.

ZaneYork commented 1 year ago

~1.5.6 on Android still uses .NET Framework 4.5, which will make mod compatibility tricky since the PC version uses .NET 5. I'm not sure how much work will be involved in rewriting .NET 5 mod DLLs to load in .NET Framework. If we can get that working, it would benefit PC players on the compatibility branch too though.~

Seems that early info was incorrect. I decompiled the game myself, and it uses Xamarin.Android 12.0 (which seems to include .NET 5).

Bad news, it seems still using .NET 4.x: image

evenheizer commented 1 year ago

~1.5.6 on Android still uses .NET Framework 4.5, which will make mod compatibility tricky since the PC version uses .NET 5. I'm not sure how much work will be involved in rewriting .NET 5 mod DLLs to load in .NET Framework. If we can get that working, it would benefit PC players on the compatibility branch too though.~ Seems that early info was incorrect. I decompiled the game myself, and it uses Xamarin.Android 12.0 (which seems to include .NET 5).

Bad news, it seems still using .NET 4.x: image

can it be done? or is it impossible?

ghost commented 1 year ago

@ZaneYork what should we do :(

Vylesh commented 1 year ago

~1.5.6 on Android still uses .NET Framework 4.5, which will make mod compatibility tricky since the PC version uses .NET 5. I'm not sure how much work will be involved in rewriting .NET 5 mod DLLs to load in .NET Framework. If we can get that working, it would benefit PC players on the compatibility branch too though.~

Seems that early info was incorrect. I decompiled the game myself, and it uses Xamarin.Android 12.0 (which seems to include .NET 5).

Bad news, it seems still using .NET 4.x: image

İts seems to need rebuild to .Net 5

Vylesh commented 1 year ago

But rebuilding makes more longer time to make SMAPİ otherwise if we use .Net 4 in future mods are need to compitable for mobile system. And this is makes more worse ... For Pc differen version for mobile different version Am i correct @ZaneYork ?

Shockah commented 1 year ago

@Wonder871 and others: please refrain from posting chatter-like messages on this ticket. Every single message you post here gets emailed to every single person that subscribed to updates on this ticket. Your begging and reaction messages are not helping at all. If you want to discuss the state of this ticket, do so on a platform like Discord, and use this ticket only for technical discussion.

ghost commented 1 year ago

how many months does it take?

atravita-mods commented 1 year ago

~1.5.6 on Android still uses .NET Framework 4.5, which will make mod compatibility tricky since the PC version uses .NET 5. I'm not sure how much work will be involved in rewriting .NET 5 mod DLLs to load in .NET Framework. If we can get that working, it would benefit PC players on the compatibility branch too though.~ Seems that early info was incorrect. I decompiled the game myself, and it uses Xamarin.Android 12.0 (which seems to include .NET 5).

Bad news, it seems still using .NET 4.x: image

Interesting. Are ReadOnlySpan/Span also missing, or is it only GC.AllocateUnitializedArray and the MemoryExtensions class? (and in related: is the BitOperations class around?)

If it's the two later ones, most of what we do with spans are Ordinal and OrdinalIgnoreCase, both of which we could implement wrapper methods for and fall back to MemoryExtensions on PC and use our own implementations on Android.

(I'm suggesting wrapper methods mostly because some mods also use ReadOnlySpan/Span/MemoryExtensions.)

Pathoschild commented 1 year ago

We can shim missing APIs, but the bigger problem is that Xamarin.Android can't load .NET 5 assemblies (like Harmony and newer PC mods) because it's not part of the unified platform until .NET 6.

Fortunately a .NET 6 Android app can load Xamarin.Android assemblies. I'm not sure if SMAPI on Android loads the game the same way as on PC, but maybe we could update SMAPI on Android to .NET 6 and load the Xamarin.Android game assemblies? (The upcoming SMAPI 4.0.0 on PC is updated to .NET 6; see "update to .NET 6" in the alpha branch commits for the changes involved.)

ghost commented 1 year ago

I think we should be quiet instead of asking questions, I think we disturbed you york, we apologize.)

STEFYMMM commented 1 year ago

Hey... sorry ...just asking...will be working for android 12?...

Therealseb95 commented 1 year ago

Hey... sorry ...just asking...will be working for android 12?...

Yes

STEFYMMM commented 1 year ago

omg thank you (you made my day happy )^^

Shockah commented 1 year ago

@STEFYMMM

omg thank you (you made my day happy )^^

While it's pretty likely that any new development will support all the newest versions of Android, it was never confirmed. I also don't believe @Therealseb95 is a contributor in this project.

ObamaKntl commented 1 year ago

Hello... Sorry I just want to ask, I just want to know when will the SMAPI be updated? is it march or january?

homeofpoe commented 1 year ago

Hello... Sorry I just want to ask, I just want to know when will the SMAPI be updated? is it march or january?

Please see these two comments:

https://github.com/ZaneYork/SMAPI-Android-Installer/issues/246#issuecomment-1374697361

https://github.com/ZaneYork/SMAPI-Android-Installer/issues/246#issuecomment-1375034425

Qusi111 commented 1 year ago

Is version 1.4.5.151 working? On the latest version of smapi?

BumbleBeach commented 1 year ago

Tasks

  • [x] Uncompress blob file and decompile it
  • [ ] Update Android SMAPI source to latest 3.18.1 release
  • [ ] Ensure Loader project can launch the Modded game
  • [ ] Patch classes.dex to redirect launcher to StardewModdingAPI.dll
  • [ ] Make sure patched game works well
  • [ ] Make sure mods works well
  • [ ] Update SMAPI-Android-Installer patch logic to produce a patched apk

Is this the most recent version of the tasks checklist? Like will there be a new checklist posted when tasks are completed, or will this message just be edited? Tried looking around but haven't seen anything about it ?

ZaneYork commented 1 year ago

Tasks

Shockah commented 1 year ago

@ZaneYork Some of us at the Stardew Valley Discord server were going through the SMAPI merge (https://github.com/ZaneYork/SMAPI/commit/a42acb817649391fc4acb426c2d5f045a599bb9b) and were a bit worried.

It seems like your port of SMAPI and the Virtual Keyboard built-in mod still targets the old .NET Framework:

Changes like that will definitely cause desktop 1.5 mods to stop working and will require them to have a separate Android build, unless you do some complex rewriting. Not only that, but the rewriting will probably only work for public types, if at all. If any such members are private and accessed via reflection, there's nothing you can do.

What are your plans for retaining mod compatibility between desktop and Android?

Pathoschild commented 1 year ago

@Shockah The target framework for SMAPI is what matters, and that one targets Xamarin.Android 12 (same as the game). Virtual Keyboard is just a mod, so its target framework doesn't really matter. Some API changes like the IReadOnlySet swap might be unavoidable if we match the game's target framework, since Xamarin isn't .NET (it just reimplements many of the .NET APIs).

Keep in mind that the merge is just an early (though important) step in the update, and there's still plenty of work to do (including "Make sure mods works well" in ZaneYork's checklist).

Kyeon3D commented 1 year ago

Hey @ZaneYork , got any news for us?

ZaneYork commented 1 year ago

Tasks

MarcksZx commented 1 year ago

Ty for your hard work