I've created a bash script that sets up Forge 1.2.5, which you can find here! It automatically does each step of this guide for you, and includes a fix for sounds.
TODO: Add a section on installing the resources (sounds) folder to the MCP environment. The links have changed and Minecraft 1.2.5 isn't able to download them anymore.
Make sure to always have a backup copy of all of these downloaded files! I'd recommend putting them into a seperate folder from your MCP / Forge project directory.
- Forge: Download the Forge 1.2.5 source distribution you'd like to use (it's recommended to use the latest released version). These can be found on the official Forge website.
- MCP: Download the Mod Coder Pack for 1.2.5 (mcp62). The Minecraft wiki has a list of MCP versions with download links here.
- Fernflower: You'll also need to obtain a specific version of Fernflower, as the automatic download link mcp62 used is now non-functional. This version of Fernflower is important, as using newer versions of Fernflower will break Forge's patches, which were intended to fix some of Fernflowers decompilation bugs at the time. Luckily, this version of Fernflower can be found in mcp70a. Download mcp70a from the same Minecraft wiki page, and unzip the files. You can find the fernflower.jar file at /mcp70a/runtime/bin/fernflower.jar. Copy this file to where you're storing all of these downloaded files.
- LWJGL: If you want to use an authentically janky old version of LWJGL, download LWJGL 2.4.2, which can be found here (download the file named "lwjgl-2.4.2.zip"). Alternatively, download the latest release (LWJGL 2.9.3) from here.
- Minecraft .jars: Get a copy of the 1.2.5 client Minecraft .jar, and the 1.2.5 Minecraft server .jar. An easy way to get both files is through the download links on the Minecraft wiki page for 1.2.5. These files are hosted by Mojang.
- JDKs: (Possibly optional, but recommended) As Minecraft 1.2.5 and mcp62 were made using an older JDK, I'd recommend using JDK 6 when decompiling & modding with them (or the closest possible substitute). I can only speak for MacOS based JDKs, but when using any JDK newer than Apple's Legacy Java 6 JDK, Forge's patches fail to apply to the decompiled source code. If you're on Windows or Linux, Oracle hosts JDK 6 downloads on this page. If you're on MacOS, you'll need to install Apple's Legacy JDK 6. Note: these versions of Java are likely not secure, use them at your own risk. It might be a good idea to re-install a supported JDK after installing the older one, to make sure that environmental variables or various platform binaries are up to date.
- MCP: Unzip mcp62, and move the unzipped folder to your project directory.
- Forge: Unzip the Forge source distribution you downloaded, and move the unzipped forge folder to inside of the unzipped mcp62 folder (/mcp62/forge).
- Fernflower fix: Copy the "fernflower.jar" file from mcp70a to the same location under mcp62 (/mcp62/runtime/bin/fernflower.jar).
Broken link fix: Inside of the mcp62 folder, navigate to the "conf" folder, and modify the "mcp.cfg" file (/mcp62/conf/mcp.cfg) to remove the line containing "UpdateUrl" (line 124 in mcp62). This link is no longer functional, and MCP will fail upon trying to communicate with it. Removing it prevents MCP from trying to update.I don't think this actually does anything, as /mcp62/conf/mcp.cfg was overwritten with /mcp62/forge/conf/mcp.cfg anyway.- Newline fix: If the OS you're using is not Windows, you may need to convert the line endings in the file /mcp62/forge/conf/astyle.cfg to Unix style line endings (this was an issue for me when using MacOS). Using the program dos2unix is an easy way to do this.
- Minecraft .jars: Inside of the mcp62 folder, navigate to the "jars" folder. Copy the Minecraft 1.2.5 server .jar file to this directory, and rename it to "minecraft_server.jar" (/mcp62/jars/minecraft_server.jar). Make a new folder in the "jars" folder, and name it "bin". Copy the Minecraft 1.2.5 client .jar file to this directory, and rename it to "minecraft.jar" (/mcp62/jars/bin/minecraft.jar).
- LWJGL files: Unzip the downloaded LWJGL. From the unzipped LWJGL folder, navigate to the "jar" folder, and copy "lwjgl.jar", "lwjgl_util.jar", and "jinput.jar" into the same MCP "bin" folder that the Minecraft client .jar file was copied to (from /lwjgl-(version number)/jar/*.jar to /mcp62/jars/bin/*.jar). From the unzipped LWJGL folder, navigate to the "native" folder. This folder contains all the OS specific binary files that LWJGL depends on. Find the folder corresponding to the name of your OS, and copy it to the MCP "bin" folder (from /lwjgl-(version number)/native/(name of the copied folder) to /mcp62/jars/bin/(name of the copied folder)). Finally, rename this copied folder to "natives" (/mcp62/jars/bin/natives).
Congratulations! You have now finished the pre-setup of a working, ready-to-install Forge 1.2.5 environment! I'd advise making a backup of this folder before doing anything else. I personally compress my finished pre-setup as a 7zip archive file. You do still have to install Forge 1.2.5 to the MCP environment before you start modding with it, but the process is fairly easy. A quick refresher / guide for those who aren't familiar with it:
- Start your favoured termal emulator (Command Prompt, MacOS terminal, qterminal etc).
- (If you wish to use an older version of Java, as recommend above) Export your JAVA_HOME environmental variable to point to the JDK Home folder you want to use.
- From the "mcp62" folder, navigate to the "forge" folder (/mcp62/forge). Navigate to this directory with your open terminal emulator.
- If you are using Command Prompt, run the "install.cmd" command file with it. If you are using a bash shell, run the "install.sh" shell script with it (requires Python 2 (probably) to be installed).
The install script should now take care of the rest! After it finishes, you should now have a working Forge & MCP environment! If you don't know how the MCP / Forge 1.2.5 modding system works, I would highly recommend checking out sore era-appropriate tutorials.
Remeber, have fun while modding! Now it is YOURFORGE!
Would this work? https://www.java.com/en/download/help/path.html