I found the code I was talking about again (in the rsp plug-in, ucode1.cpp, ucode2.cpp, and ucode3.cpp).. Definitely looks like logic error fix, but unrelated to the Majora's Mask crash. There is also another logic error fix I found in the core, rom.c. Line 100 should read
localrom=localrom[i+3]; (not
localrom=localrom[1+3];). I don't see any visible differences with these fixes in place, though, so they must not be very important. You already have these fixes anyway, since you are based on n64oid (they'll mainly benefit Richard42 if he hasn't found them already).
I think I previously mentioned it a while back the missing backgrounds in gles2n64 and Ocarina of Time is due to gSPBgRectCopy in gSP.cpp:1561 returning early. You can checkout earlier versions of gles2n64 from the google code page but I haven't looked closely.
Thanks, I'll definitely take a look into this and let you know what I find out.
When you mention the api changes Yongzh made what are you referring to? Other than ReadScreen/ReadScreen2 I can't think of much else.
Well, I don't mean documented API specifically, but to the assumptions made in the code for how things are linked, where functions are located, and what calls what from where (which are every bit as important). I may be wrong to refer to this as the "Mupen64Plus API", but I don't have a better term. Since you had to add the SDL linkage back into Yongzh's code, I'm sure you know what I'm talking about. It's the little things that make his specific plug-ins only work with his emulator. Part of the reason was the removal of SDL, and part was to control things from the central GUI, and part was to keep the closed-source components he wrote separate from the open-source code. By comparison, plug-ins written for PC Mupen64Plus, if recompiled for the ARM architecture, should work "out-of-the-box" in Mupen64Plus AE (at least that is the goal.. to have a source code base from which patches could be easily applied back to the official Mupen64Plus project, and vice versa). The exception, of course, is the video plug-ins, which require a JNI linkage to flip the EGL buffers -- but then they wouldn't work "out-of-the-box" anyway due to GLES, so I don't feel too badly about that! The GUI interfaces with unique features of the plug-ins (such as "frame skip", "screen stretch", and so on) through their config files rather than linking with the plug-in directly through an altered API with linkage to JNI. That allows me to leave the plug-in code virtually unaltered and still portable.