Android ndk-build version #140

Open
opened 2015-11-26 00:32:29 +00:00 by xperia64 · 8 comments
xperia64 commented 2015-11-26 00:32:29 +00:00 (Migrated from github.com)

I have decided to try compiling this for android again, this time using the "official" ndk-build method. I've got everything compiling for armeabi-v7a, mips, and x86. Everything is dynamic except for SDL_*. Most everything is intact except for ruby's string crypt function, which I broke due to a lack of -lcrypt.

I'm in the process of ironing out the segfaults.
Currently, I'm stuck on boost.program_options (1.48.0). I am getting a maperr from the copy() function at line 118 of here: https://gist.github.com/xperia64/b84f7dc3761a0c60ee5a

I have decided to try compiling this for android again, this time using the "official" ndk-build method. I've got everything compiling for armeabi-v7a, mips, and x86. Everything is dynamic except for SDL_*. Most everything is intact except for ruby's string crypt function, which I broke due to a lack of -lcrypt. I'm in the process of ironing out the segfaults. Currently, I'm stuck on boost.program_options (1.48.0). I am getting a maperr from the copy() function at line 118 of here: https://gist.github.com/xperia64/b84f7dc3761a0c60ee5a
sorlok commented 2015-11-26 02:16:10 +00:00 (Migrated from github.com)

If you need someone to test out your apks, I have an Nvidia Shield and am happy to help. :)

If you need someone to test out your apks, I have an Nvidia Shield and am happy to help. :)
xperia64 commented 2015-11-26 04:19:43 +00:00 (Migrated from github.com)

A lot of the segfaults are fixed now. boost.program_options does not like being built as shared, and ruby had some invalid config options set. The project appears to be at about the same state as it was with the non-ndk-build version, minus touch controls. Also, I'm not sure if sound works or not.

Here is my repository for the Android project, there is an APK in the release section: https://github.com/xperia64/android-mkxp
Qualcomm devices are still upside-down 👍

All libraries are now static except for OpenAL, ogg, and mkxp itself. I ran into problems when ogg and OpenAL were compiled statically.

@Ancurio can you help me re-add the touch controls properly? SDL changed a little.

A lot of the segfaults are fixed now. boost.program_options does not like being built as shared, and ruby had some invalid config options set. The project appears to be at about the same state as it was with the non-ndk-build version, minus touch controls. Also, I'm not sure if sound works or not. Here is my repository for the Android project, there is an APK in the release section: https://github.com/xperia64/android-mkxp Qualcomm devices are still upside-down :+1: All libraries are now static except for OpenAL, ogg, and mkxp itself. I ran into problems when ogg and OpenAL were compiled statically. @Ancurio can you help me re-add the touch controls properly? SDL changed a little.
Ancurio commented 2015-11-27 13:14:24 +00:00 (Migrated from github.com)

A lot of the segfaults are fixed now. boost.program_options does not like being built as shared, and ruby had some invalid config options set.

That's to be expected when using ndk-build. When I googled and read "just run the configure script on your computer to generate config.h", I knew this was a horrible hack in the making and stayed away from it. With native autotools, I never had a single crash or problems compiling statically (I used to link everything into a libmkxp so I wouldn't have to deal with .so problems).

@Ancurio can you help me re-add the touch controls properly? SDL changed a little.

Sure, I should still have the touch control changes in a local branch. When you say "SDL changed", you're talking about the native Java file not being compatible anymore, right? Unfortunately the SDL folks happily break it with every release, so this might be a recurring problem. So exactly what part in the interface changed?

> A lot of the segfaults are fixed now. boost.program_options does not like being built as shared, and ruby had some invalid config options set. That's to be expected when using ndk-build. When I googled and read "just run the configure script on your computer to generate `config.h`", I knew this was a horrible hack in the making and stayed away from it. With native autotools, I never had a single crash or problems compiling statically (I used to link everything into a `libmkxp` so I wouldn't have to deal with .so problems). > @Ancurio can you help me re-add the touch controls properly? SDL changed a little. Sure, I should still have the touch control changes in a local branch. When you say "SDL changed", you're talking about the native Java file not being compatible anymore, right? Unfortunately the SDL folks happily break it with every release, so this might be a recurring problem. So exactly what part in the interface changed?
xperia64 commented 2015-11-27 16:45:35 +00:00 (Migrated from github.com)

What confuses me about ruby's config.h was that I generated it with a standalone ndk toolchain, which I would think would be compatible with the regular ndk build method.The standalone toolchain version built fine, but I never tested it/tried to link to it.

Yeah, just the Java interface changed for SDL. Some native methods changed. There is no longer a nativeFlipBuffers() method, nativeSetRefreshRate was combined with onNativeResize. There were some other input-related changes too.

What confuses me about ruby's config.h was that I generated it with a standalone ndk toolchain, which I would think would be compatible with the regular ndk build method.The standalone toolchain version built fine, but I never tested it/tried to link to it. Yeah, just the Java interface changed for SDL. Some native methods changed. There is no longer a nativeFlipBuffers() method, nativeSetRefreshRate was combined with onNativeResize. There were some other input-related changes too.
moocow1452 commented 2015-12-02 03:28:22 +00:00 (Migrated from github.com)

Godspeed, xperia64. If you need a hand with testing or another brain to bounce bugs off of, I'll take up my arms once more in your name.

Godspeed, xperia64. If you need a hand with testing or another brain to bounce bugs off of, I'll take up my arms once more in your name.
xperia64 commented 2015-12-02 04:12:51 +00:00 (Migrated from github.com)

I would like to continue discussion about the Android version either on my repo's issue tracker or the gitter I just created: https://gitter.im/xperia64/android-mkxp
Original MKXP issues encountered should definitely be addressed here, but I think it would be best to direct all of the android-specific stuff there.

@Ancurio I now better see what you mean about the "fun" that is GLES on most Android devices.

I would like to continue discussion about the Android version either on my repo's issue tracker or the gitter I just created: https://gitter.im/xperia64/android-mkxp Original MKXP issues encountered should definitely be addressed here, but I think it would be best to direct all of the android-specific stuff there. @Ancurio I now better see what you mean about the "fun" that is GLES on most Android devices.
Ancurio commented 2015-12-04 09:54:50 +00:00 (Migrated from github.com)

@xperia64

Here's the code for the provisional touch overlay I created a year ago, rebased onto current master and tested locally. Also, the overlay_desc.json I used for the demo, and the overlay image:
touch_overlay

(It's probably not going to work well with the RGSS2+ screen sizes).

@xperia64 Here's [the code](http://pastebin.com/raw.php?i=MmQ8xb4U) for the provisional touch overlay I created a year ago, rebased onto current master and tested locally. Also, the [overlay_desc.json](http://pastebin.com/raw.php?i=UCPPn7rY) I used for the demo, and the overlay image: ![touch_overlay](https://cloud.githubusercontent.com/assets/1173822/11586713/39e49596-9a75-11e5-833c-964086bfdb61.png) (It's probably not going to work well with the RGSS2+ screen sizes).
xperia64 commented 2015-12-04 16:07:36 +00:00 (Migrated from github.com)

Touch overlay is functional again.

Touch overlay is functional again.
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: MapleShrine/mkxp#140
No description provided.