Minecraft on ARM

Started by moocow1452, February 07, 2014, 18:19:01

Previous topic - Next topic

moocow1452

Hi all.

Figured I might as well drop in here since I was getting nowhere on either the Minecraft or the Beaglebone boards, so I pose of you this question. I'm trying to get a Minecraft client running on the Beaglebone Black under Debian wheezy and I can access the Minecraft Launcher just fine, but once I try to login, I get nothing doing. Tracing the error logs back, it fails in regard to liblwjgl.so, citing that it cannot run a 32bit version on an ARM platform, which makes sense. But when I try to manually install lwjgl from apt-get and copy-paste the repository version into the Minecraft libraries under the same name as the original, it triggers a SHA check since the file changed, boots the new one out, downloads a new old version from the Minecraft server and throws up the same error. Is there something I can do to make the full client run on Beaglebone, preferably leaving everything vanilla as possible or am I just wasting my time if it's going to be an unplayable mess anyway?

jk-5

If you go to your minecraft folder. In there is a versions folder. Open that and go to the folder of the version you're trying to play. Open the .json file in there. That file lists all dependencies for the game. Change lwjgl to a newer version in there (that does not exist on mojang's servers). After that, go to the libraries folder and create a new version folder for the version you just created. In there, put your compiled lwjgl jar (and don't forget to change the version in there). This should fix your problem.
Please let me know if it does/doesn't.

Cheers! jk-5

moocow1452

Thanks jk-5, although currently I'm stuck on a build error.

debian@arm:~/lwjgl$ ant compile_native
Buildfile: /home/debian/lwjgl/build.xml

-initialize:

compile:

headers:

touch-version:

version-mismatch:
     [echo] 
     [echo]                     lwjgl.java.windows.version =    private static final int JNI_VERSION = 24;
     [echo] 
     [echo]                     lwjgl.native.windows.version = #define org_lwjgl_WindowsSysImplementation_JNI_VERSION 24L
     [echo] 
     [echo]                     lwjgl.java.linux.version =      private static final int JNI_VERSION = 19;
     [echo] 
     [echo]                     lwjgl.native.linux.version = #define org_lwjgl_LinuxSysImplementation_JNI_VERSION 19L
     [echo] 
     [echo]                     lwjgl.java.freebsd.version =    private static final int JNI_VERSION = 19;
     [echo] 
     [echo]                     lwjgl.native.freebsd.version = #define org_lwjgl_LinuxSysImplementation_JNI_VERSION 19L
     [echo] 
     [echo]                     lwjgl.java.macosx.version =     private static final int JNI_VERSION = 25;
     [echo] 
     [echo]                     lwjgl.native.macosx.version = #define org_lwjgl_MacOSXSysImplementation_JNI_VERSION 25L
     [echo] 
     [echo] 

compile_native:

-compile_native_win32:

-compile_native_linux:

compile:

compile32:
    [mkdir] Created dir: /home/debian/lwjgl/bin/lwjgl/x32
    [apply] /home/debian/lwjgl/src/native/generated/opencl/org_lwjgl_opencl_CL12.c: In function ‘Java_org_lwjgl_opencl_CL12_nclCompileProgramMulti’:
    [apply] /home/debian/lwjgl/src/native/generated/opencl/org_lwjgl_opencl_CL12.c:87:3: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness [-Wpointer-sign]
    [apply] /usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘cl_char *’
    [apply] /home/debian/lwjgl/src/native/linux/org_lwjgl_opengl_LinuxKeyboard.c: In function ‘Java_org_lwjgl_opengl_LinuxKeyboard_keycodeToKeySym’:
    [apply] /home/debian/lwjgl/src/native/linux/org_lwjgl_opengl_LinuxKeyboard.c:81:2: warning: ‘XKeycodeToKeysym’ is deprecated (declared at /usr/include/X11/Xlib.h:1695) [-Wdeprecated-declarations]
    [apply] /home/debian/lwjgl/src/native/linux/opengl/org_lwjgl_opengl_Display.c: In function ‘setClassHint’:
    [apply] /home/debian/lwjgl/src/native/linux/opengl/org_lwjgl_opengl_Display.c:191:17: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
    [apply] /home/debian/lwjgl/src/native/linux/opengl/org_lwjgl_opengl_Display.c:192:18: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
    [apply] /usr/bin/ld: cannot find -ljawt
    [apply] collect2: ld returned 1 exit status

BUILD FAILED
/home/debian/lwjgl/build.xml:483: The following error occurred while executing this line:
/home/debian/lwjgl/build.xml:512: The following error occurred while executing this line:
/home/debian/lwjgl/platform_build/linux_ant/build.xml:59: The following error occurred while executing this line:
/home/debian/lwjgl/platform_build/linux_ant/build.xml:85: apply returned: 1

Total time: 5 minutes 5 seconds


Going to guess it has something to do with building on ARM, or missing dependencies in my Debian, since it was throwing them out one after another having to hunt them down.

moocow1452

Using instructions from this;

http://it.toolbox.com/wiki/index.php/Developing_on_Raspberry_Pi

I was able to coin my own LWJGL, cp the libraries and the sha files into the base repositories, and adjust the Maven repository to point to a version that simply does not exist yet, but I think it's the actual launcher activity that's bumping around my protocol, since it creates it's own directory in real time, then populates the file with pulled copies of files it compares against Maven, presumably a no cheating allowed thing. So I'd need to either manually compile the launcher to not do that, play around with a Mod, or ask Minecraft Forum for help.