# LaunchWrapper ![image](https://user-images.githubusercontent.com/68742864/227987160-03948674-48c2-4a69-b5b8-86793462f128.png) **LaunchWrapper** is a wrapper for legacy Minecraft which provides fixes for certain game features and also improves compatibility with launchers. LaunchWrapper is bundled in [BetterJSONs](https://github.com/MCPHackers/BetterJSONs) which are meant for official Minecraft Launcher. ## Features - Strips game window from Java **AWT** (**Abstract Window Toolkit**) and lets the game use internal **LWJGL** frame - BitDepthFix for versions before Beta 1.8 - Allows changing assets directory in 1.6 snapshots (the game didn't have a parameter to do that yet) - Allows changing game directory in versions before 1.6 - Replaces mouse input code with **LWJGL** calls - Fixes TimSort crash when using Java 8+ - Adds ability to customize built-in **LWJGL** frame - Changing display title - Setting icon - Proxies all requests from old skin servers to the current skin API and converts skins to required format - Skins don't work in Java versions before 8u181, due to the requrement of TLS 1.2 support - Uses Betacraft proxy to download sounds for versions before 1.6 - Adds ability to launch classic and pre-classic at custom resolution and fullscreen - Makes save slots in classic and indev functional and saves to `.minecraft/levels` directory - A launcher for isometric level viewer (IsomPreviewApplet) - A VSync toggle (Used to prevent extreme framerate in early versions which causes **coil whine**) - Does not depend on any hard-coded obfuscated names and is mostly compatible with every Minecraft version - This also includes modded versions - A parameter to automatically download `minecraft_server.jar` for snapshots: `12w18a`, `12w19a`, `12w21a` - The wrapper is fully compatible with Java 5+ if the game is vanilla - The wrapper also fixes Beta 1.3, Pre-classic and Classic compatibility with Java 5 - Built-in [Modloader Fix](https://github.com/coffeenotfound/ModloaderFix-b1.7.3) ## How to use ***There will be an installer eventually.***
*For now, here is an in-depth guide for those who will be using the wrapper* - If you are using MultiMC, [follow this guide](MultiMC.md).
- If you are using Official Launcher (or any other launcher which follows the same versions folder structure), use [BetterJSONs](https://github.com/MCPHackers/BetterJSONs) and rename the JSONs if they are conflicting with any vanilla JSONs ### Setting up manually Make sure all minecraft and wrapper libraries are on classpath
Use `java -cp org.mcphackers.launchwrapper.Launch ` to launch the game Arguments are formatted the same way as in Mojang launch wrapper.
For example: `--username DemoUser --width 1280 --height 720 --title "Minecraft Demo" --demo` Arguments may be as follows: - `awtFrame` - disable LWJGL frame patch and use AWT - `isom` - Launch IsomPreviewApplet - `forceVsync` - Launch the game with VSync enabled - `forceResizable` - Early Indev and Classic don't properly update viewport, so the wrapper disables frame resizing. To enable it anyway use this argument - `skinProxy` - **pre-c0.0.19a** / **classic** / **pre-b1.9-pre4** / **pre-1.8** / **default** - convert the skin to one of these specified formats - **pre-c0.0.19a** - flatten all skin layers, flip bottom textures, mirror entire skin and crop to 64x32 - **classic** - flatten all skin layers, flip bottom textures and crop to 64x32 - **pre-b1.9-pre4** - flip bottom textures and crop to 64x32 - **pre-1.8** - crop to 64x32 - **default** - do nothing with requested skin - `resourcesProxyPort` - Betacraft proxy port for sound resources - `serverSHA1` - Compare minecraft_server.jar in .minecraft/server against this hash - `serverURL` - URL to download the server from if the hash is mismatched or the jar is missing - `icon` - List of paths of icon PNGs separated by `;` - `title` - The display title - `applet` - Makes the game think you're running an applet (Which removes quit button for example) - `oneSixFlag` - Toggles notice about the release of 1.6 in 1.5.2 - \+ any [Minecraft launch arguments](https://wiki.vg/Launching_the_game#Game_Arguments) or applet parameters