New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add full support for downloading versions of Minecraft from Omniarchive's collection #101
Comments
Actually, how does one import a .jar into Prism? |
I think you click on the 'Replace minecraft.jar' button. You can then choose a JAR file of the game. You also have to make sure to choose a version of the game (when initially creating the instance) that is closest to the JAR file you're going to use. |
A lot of them were added in PrismLauncher/meta#5 already |
Some of the suggestions here seem to relate to the actual launcher, but maybe it would make more sense being moved to the meta repo? Some of the legacy version fixes could be implemented in a similar way to #443 - although more intrusive patches would need to be implemented in an agent which is probably out of scope for NewLaunch (the Java component of Prism). |
A good idea for one of the client fixes is to un-applet the whole game to fix issues with HiDPI and M1 iirc. |
This can already be done with the noapplet trait. This does, however, ignore the window dimension settings. It also doesn't work on all versions. |
Which versions does it not work on? Also by that I actually meant making the game not use AWT and Canvas... |
On some versions such as classic and infdev there is no main class. What are the specific issues on M1 macs, btw? I'm interested. |
IIRC the main issue on M1 is the inverted color issue which is caused by Canvas and AWT. |
Hi there, I'm one of the admins of Omniarchive. We'd love to see our collection integrated into Prism. Not a lot of launchers support legacy MC versions, and we proposed a similar feature for MultiMC close to 5 years ago, so it'd be nice to see things come full circle. |
A few things I'll add to this:
Feel free to let me know if any of you have questions about anything and I'll be happy to help! |
Once our collection of binaries is made available, here's a list of things that will need to be fixed for legacy versions to be fully operational:
Only those last two are "required" for things to work at all, so consider most of these low priority for the time being. |
I've created a bit of a concept sketch to show what I think Omniarchive integration could look like during instance creation. The image is here. Feedback would be greatly appreciated. |
Wrong data of versions could be corrected here https://github.com/PrismLauncher/meta/blob/master/static/mojang/minecraft-legacy-override.json and the versions from Omniarchive not provided by Mojang could be similar added like I did for the old_snapshots here https://github.com/PrismLauncher/meta/blob/master/static/mojang/minecraft-old-snapshots.json in PrismLauncher/meta#5 |
The incorrect data is a Mojang issue that's gone unfixed for close to a decade. Would it be okay to replace that with our own sources, even when toggled off? I think it might raise some questions.
Sounds good to me |
I don't see a reason as to why we should not apply data that is known to be more accurate, but would need to wait and see what the maintainers are thinking about that. |
It seems like it might require changing data anyway, because the more I look at it, the more it seems we'd have to do it across the board to make it more accurate. For instance, some versions, despite being different, share the same version number visually. The way we typically differentiate this in version names is with shortened timestamps such as |
If everyone's okay with the naming convention I've mentioned in the previous comment, then I'll push a PR to the meta repo later today to get further feedback. |
I didn't know that the main version repository is no longer on archive.org (the main site still points there). I'm guessing that the site is going to be updated at some point to point to the new location?
I agree that a checkbox would be better than two buttons. The reason I thought of two buttons was because the version picker for already existing instances is more limited (does not have filter functions) than the one for creating an instance.
I'm not surprised that it has a bunch of spyware, and it's OK if it's never available from within a launcher for that reason. I actually was unsure about even including in the RFC hence why I included it in the unresolved questions section.
That's good that Mojang's IP enforcement team has not given you any trouble, however Microsoft could see the project differently in the future depending on various circumstances.
Should I add the updated information to the RFC or should I leave it alone? Also thanks for commenting on the RFC by the way. |
Yes, very soon.
Yeah, feel free. Thanks! |
Some concerns were brought up in the Prism Launcher Discord server regarding changing the names of existing versions, so how about this: What if we add a new tag to metadata files that modifies the display names of existing versions only when Omniarchive is toggled on? Without having these display names, it gets confusing to tell these versions apart from the ones we have, so I think this is a fair middle ground. |
Hello, and sorry for the very late response (my PC had a power supply issue which I finally got fixed). I went and updated the RFC with the new information. As for the new tag to metadata files that only takes affect when Omniarchive is enabled, that is a good and fair middle ground that allows users to still see the version names that Microsoft/Mojang provides while also seeing the accurate version names. |
Goal
Allow players to download versions of Minecraft from Omniarchive's collection within the launcher, as well as fixing bugs/issues in old classic versions caused by new hardware and software.
Motivation
Omniarchive has archived a lot of versions of Java Minecraft that Mojang/Microsoft do not officially host. Currently to play them through the launcher you have to download the version you want from their collection manually, create a new instance with a similar enough version to the one you want to play, then set the game version to custom and select the JAR file you've downloaded. You can also use Betacraft to play all the versions from Omniarchive's collection, but it requires installing another program on your device and creates possible fragmentation of where and how your Minecraft game data is stored.
If Prism Launcher were to support downloading versions of Minecraft from Omniarchive, more users of Minecraft could easily try out older versions of Minecraft not available from Mojang/Microsoft without having to manually download JAR files or install extra launcher and mods.
Specification
A decent place to put the functionality would be in both the instance creation menu as well as the version picker that comes up when changing the Minecraft version an instance uses.
For the instance creation menu, it would be a checkbox on the main Vanilla versions page. The checkbox would have 'Show additional versions from Omniarchive. (?)' with the question mark leading to a wiki page explaining the new functionality. Additional filters would also be added upon ticking the checkbox (Infdev, Indev, Classic and Pre-classic) that would make it easier to find versions from those development points. Additionally, display names of existing versions from Mojang/Microsoft would also be changed to be more accurate when Omniarchive versions are enabled, so users can tell all the versions apart far easier.
For the version picker menu when changing the game version, it would be more simplistic, with a checkbox that toggles the display of Omniarchive versions in the list. If it's preferable to rework the UI of the version picker menu instead, then it could be modified to have a similar layout to the instance creation menu, omitting any features not related to changing the game version (like modpack stuff, instance name, instance group, etc).
Additionally the metadata server would have to include metadata allowing the launcher to see and download the versions from Omniarchive's collection as well as additional metadata for alternative display names of Mojang/Microsoft versions that have incorrect/inaccurate display names.
Drawbacks
Omniarchive's collection is hosted on the Internet Archive, which means that downloads may be slow and files could be unavailable if Internet Archive goes under maintenance. Error handling for Internet Archive errors would have to be added.No longer necessary; see below.Internet Archive restricts downloading of certain files to people that have archive.org accounts if they become too popular, so support for signing in to and using archive.org accounts would need to be added as well.Omniarchive no longer uses Internet Archive for storing their collection, meaning archive.org account integration and Internet Archive error handling is no longer necessary.Unresolved Questions
Omniarchive has also archived certain versions of the China edition of Minecraft built off of the Java Edition codebase. Should those also be made available for download if support for Omniarchive's collection is added?This will almost certainly not make it in, since the China edition of Minecraft has lots of spyware embedded within it.For the tweaks section: Should all of the Betacraft fixes and tweaks be added, or should it be kept only to things launcher-independent (like RetroWrapper and Betacraft proxy)? Additionally are the people behind the tweaks and fixes OK with Prism Launcher being able to download and use them?Tweaks section would not be required once all fixes listed in this comment are implemented into the launcher.Are the Omniarchive folk OK with allowing their collection to be accessed through Prism Launcher?The Omniarchive folk are OK with their collection being accessible through the launcher.Alternatives Considered
If it's too difficult to implement full Omniarchive support, then maybe another metadata server could be set up which replaces the normal Vanilla version list with versions available from Omniarchive? Though users would have to switch back and forth between the normal metadata server and one meant for the Omniarchive versions.
This suggestion is unique
You may use the editor below to elaborate further.
The original idea (Omniarchive support) was suggested multiple times in the old repository alongside someone else suggesting Betacraft support, so I decided to suggest it here since I thing having full Omniarchive support would be great for the launcher.
Additionally the end result of the suggestion is not meant to replace or harm Betacraft in any way, it's only meant to make it easier to access old versions of Minecraft without having to manually download JAR files or install extra launchers and mods.
The text was updated successfully, but these errors were encountered: