Morrowind on Android

Hi

SwampChicken, Java3D remained almost frozen (a few community fixes) for years when Sun abandoned it until Harvey tried to resurrect it and I ported it to JOGL 2. I understand philjord’s position, he was reluctant to switch to another engine or scenegraph API, he didn’t want to ruin his efforts and I know that porting some code to another engine can take a long time. There are a very few APIs similar to Java3D, the last commit for Xith3D was done in December 2014, …

There is no need to use a conditional instruction :wink: In my humble opinion, you should split your contributions into several smaller and more manageable pieces. I suggest you to make a pull request with the changes about the OpenGL ES pipeline. Then, we can solve your problems with the drawable based on NEWT. After that, we can fix the Android specific aspects and finally, we can push the first pre-version of Java3D 1.7.0 with all your changes. There is no shame in asking for help. However, things have changed a lot in the latest ten years, there is no room for another challenger in the 3D Java area, what we have done for Java3D just extends its life (or postpones its death, depending on the viewpoint), Android support will be a very appealing feature but it won’t be enough to compete with other famous engines and the problem is a bit the same for some other frameworks and engines supporting JogAmp except JMonkeyEngine and LibGDX. I expect a consolidation with few competitors rather than a diversification. It’s up to us to choose how it will happen so that you’ll be able to go on working on Morrowind on Android without having to rewrite everything.

In case anyone is interested and if you already have the game files for Morrowind, you can install this on your android device from the play store here

Fair warning though it’s just a work in progress :slight_smile: .

I tried it on two different devices (Nexus 5X and Redmi Note 2) and the loading process crashes on both with some StringIndexOutOfBounds. You should have gotten the bug reports in the play store. I used Morrowind GOTY edition, in case that matters.

Just updated to the new Version, but it keeps crashing…

Egon,
I broke it briefly trying to fix the errors, but instead I made it worse.

I think I see your Nexus 5X crashes from earlier today, that one will (cross fingers) have been caused by my bug, so when it updates to version 1.4 it should be fixed, I put it on the store about 12 hours ago, so possibly it’s on your device now and things might be better?

In fact I see your HM Note 2 bug as well, and THAT bug was caused by a string parsing failure for the starting location and orientation, which is also fixed (or should be ???)

Because the app is heavily multi threaded the crash reports are very sparse on detail and stack traces, and they don’t include any sort of System.err output.

If you can tell me exactly what steps you were taking when it crashed that might help. Specifically how long after selecting the start location and what was displayed on screen at the time.

Thanke for investing time to give me feedback, is does work on peoples devices ;D

I have 1.4 installed already. After selecting a starting location (it doesn’t seem to matter which one), it manages to get to stage 5 and then crashes with the StringIndex… Exception.

1.5 still crashes, just earlier (around stage 2).

Well I’m a bit stumped by this one

I’ve got the GOTY bsa files and they are identical to the original ones, I can run with them fine on my device.

I’m wondering if you’ve got any DLC or mods with bsa files I haven’t seen.

If you get time could you send me a screen shot of the file explorer for your morrowind folder on your device with teh detials view turned on so I can see the bsa file names and sizes?

The reason I wonder is that the message describes a substring on a file name that’s 16 characters long, but there is only 2 of those in the core bsa files and they are both fine names, so perhaps you have an extension bsa of some sort that has no foldername on one of the filenames, just a guess.

I’ve put back in the string indexof code that I tried to fixed earlier (but managed to cock it up) so possibly the 1.6 version will fix it, but without knowing the bug I not confident.

Just for your interest, the reason this is so hard to debug is that the proguard mapping file seems to be wrong somehow

I get delivered the bug as:
java.lang.StringIndexOutOfBoundsException: length=16; regionStart=0; regionLength=-1
in at null.hasNifOrKf(ArchiveFileTes3.java).substring
at archive.BSArchiveSet$1.run(BSArchiveSet.java)

That line null.hasNifOrKF is totally wrong that method is just a field getter of one return statement, I think it’s supposed to be the method load() it’s the only thing that makes sense.

This comes to me automatically from the google dev console so I can’t inspect anything else about it.

Phil.

No, it’s a clean GOTY install. In fact, I bought it just for this purpose, because I couldn’t install my old version anymore on Windows 10. I’ll post a screen shot later.
Maybe it has something to do with the location of the files? I copied the Morrowind directory into the download folder.

I’ve just updated to the latest version. It kinda works now, i.e. it doesn’t crash anymore. But all I’m seeing after loading is either the skybox or the skybox, the player’s torso and some crazy polygons below it. I’ll try to upload some shots later.

OK, so here you go. All screen shots are taken on the Redmi Note 2. The Nexus 5X looks similar albeit it doesn’t render these flashy hands (but nothing instead). The device also crashes with an OOM when loading Tel Mora, you should have gotten the error report for that one:

The is the menu:

These are the dwarf ruins:

And this is combat in a cave:

Wow I did not expect corrupted texture buffer passing, but I’m still vaguely thinking this is an esm loading issue now.

Anyway I’ll private message you so we can sort it, I’ve put in some log output code now, so the next update should allow me to see what’s going on better.

Thanks for persisting with this…