Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - sfalexrog

Pages: 1 2 3 [4]
Builds & Ports / Re: Android Port (SDL2)
« on: June 16, 2014, 02:21:14 am »
Xuio, I've heard about buttons being stuck on some devices, but unfortunately couldn't reproduce it on my end. It probably has something to do with the way SDL2 handles touch devices, but since I don't have access to any device with an active stylus, I can't be sure on how to fix that. Still, I hope it'll be fixed eventually  :)

HunterZ, well, I hate to ruin the magic, but touchscreen support is somewhat barebones because it's mainly mouse emulation, and there's only so much you can do with it. I've noticed myself trying to drag-drop things on the inventory screen, so maybe I'll get down to implementing it some day :) Maybe I'll tune drag-turning a bit too, but that might start to interfere with map drag-scrolling. As for Roland music, well, you can actually make some .OGGs and use them!

Also, well, since android is experimental (hey, the front page says it!), I might as well try and do some experimenting:
 - Now the game actually tries to use your system locale. I'm not sure where it's used apart from setting the display language on the first launch, but Android should ignore locale with native code anyway, so I wouldn't expect things to break too much.
 - Also, OpenXcom's data, translations and data patch are now contained inside the package. You still need the original data, and you'll have to place it in /sdcard/OpenXcom/data as usual, but everything else will be installed automagically.

Since I have no experience with Java and its Android implementation in particular, expect things to break hard. Still, even if they do break for some reason, don't hesitate to tell me about it, maybe I'll fix it somehow!

The link is here:

Builds & Ports / Re: Android Port (SDL2)
« on: June 14, 2014, 07:32:04 pm »
It's going to be up on the main site soon, but I guess it won't hurt to post the link here.

Builds & Ports / Re: Android Port (SDL2)
« on: June 11, 2014, 01:00:49 am »
Updated the port a bit more.

In this version:
 - Game should no longer crash on globe pinch-zooming (credit goes to SupSuper for telling me what to fix);
 - Onscreen keyboard now hides if the associated TextEdit gets destroyed;
 - Not sure if that's a noticeable change, but SDL and yaml libraries are now statically linked.

New version:

Builds & Ports / Re: Android Port (SDL2)
« on: June 07, 2014, 12:11:11 am »
Thanks! Nice to know someone is actually using the android version  :)

Also, more updates!
This version:
 - Should have all changes from the upstream!
 - Has an option to change video scaler! (currently you can have either a "blurry" one or a "blocky" one - linear or disabled)
 - Has a better implementation of globe-pinching!
 - Lifts the base-naming window higher (so that the name won't be obscured by a keyboard)!
 - Adds a "cancel" button for the first base naming window! (It's buggy at the moment, and I don't know why one would want to use it, but here you have it)
 - Based on current (as in hg-current) SDL2, SDL2_image and SDL2_mixer, so expect some bugs to be fixed and other introduced!

Anyway, this update will probably break something really hard, so I'll be happy to have all your logcats from crashes.
New version:

Builds & Ports / Re: Android Port (SDL2)
« on: June 01, 2014, 12:47:06 pm »
Ah, why the hell not.

I've heard about performance issues on some devices (high CPU and battery consumption), and while I'm no wizard and can't really do anything about most graphics stuff happening on the CPU, here's a version with some snake(men) oil sprinkled on it:

I've tried changing the compiler to clang-3.4 and messing with compiler flags, resulting in a somewhat larger binary that should have some more optimizations turned on. As for any real performance gains, I'm not sure they're there. Like I've said, snake(men) oil.

Still, it (mostly) corresponds to the current (2014-06-01 06:23) nightly, and has some added features:
 - Placing more than one finger on your touchscreen should no longer make the game freak out
 - There's a rudimentary support for multitouch gestures. So far it's only implemented for geoscape, and it's really basic, but it will zoom in/out if you pinch fast enough (for now it's tied to the pinch speed)
 - Not sure if I've posted about it, but hiding the keyboard no longer gets you stuck in text input: just tap on it again! To save the text you still need to hit enter, though.

So, yeah. Update data folder, load the game, see if there's anything broken.

Builds & Ports / Re: Android Port (SDL2)
« on: May 28, 2014, 02:09:14 pm »
I guess it won't hurt if I just post another version signed with a debug key:

This version should be up to date with today's (2014-05-27 23:05) nightly, and has some minor changes:
 - Drag scrolling uses left mouse button by default (so it's enabled for geoscape and battlescape)
 - page's drag scrolling code is disabled in favor of the common code (i.e. which is used in the desktop version). Swiping from soldier to turn still works, though.
 - Save/load screens should be somewhat easier to use (loading starts when you lift your finger up, not when you tap the screen)

Known bugs:
 - Sometimes the intro will play at a very high speed
 - Multitouch is broken
 - Quitting with the button apparently doesn't work exactly as intended, and some menu items (especially in Advanced options) might get duplicated. It's better to remove the game from the recents before starting it again.
 - Loading screen is shown in 320x200, so not everything fits in

Of course, you should update your data folder with the current nightly.

Builds & Ports / Re: Android Port (SDL2)
« on: May 24, 2014, 06:31:51 am »
Yes, is my repo, but I got stuck a bit trying to figure out how it worked. Tried pushing the changes, it's probably broken now but I think the relevant changes are here. Unfortunately, I've been dumb and made a commit that has fixes for resolution AND name changes. I'm not good with computers  :-[

Also, the bug with game crashing due to soldiers dying to reaction fire is still there. Will look into it later, I guess.

EDIT: Okay, I think I've figured out what caused the game crashing. The fix should be on github. New debug build is also up for everyone brave enough to test it.
MORE EDIT: Okay, looks like I've figured out how to git fetch upstream, git merge and git push. I think the current version is playable, didn't encounter anything game-breaking (then again, I messed with the code and git more than I've played, which is a good thing, I guess?)

Builds & Ports / Re: Android Port (SDL2)
« on: May 23, 2014, 11:35:42 pm »
Sorry for triple-posting, but I guess I should share this thing.

I've merged page's source with the current master (commit 962c78598d at the time of writing), "fixed" the screen resizing code (couldn't figure out how to make a pull request though), fiddled a bit with package names and got this:
This apk is signed with a debug key, so I guess it won't run unless you have an option to run debuggable apps or something. Also it needs the latest data (unless you want to see some STR_ placeholders).

A few precautions:
 - I'm still building without smpeg2 and mikmod, so your mileage in terms of sound may vary. I probably should rebuild the package with them.
 - I've only built for armeabi-v7a, so some older devices are probably out of luck.
 - Since I can't say I always know what I'm doing, anything can happen, up to and including a chryssalid walking out of your android device and making zombies from your dog and your cat. You have been warned.

Builds & Ports / Re: Android Port (SDL2)
« on: May 23, 2014, 09:11:26 pm »
Okay, looks like I've found the reason for the "OK button crash". Android sure doesn't like multiple windows. The fix is to create the window and the renderer separately, and to only destroy and recreate the renderer. The window is not going to get resized anyway (well, at least not on stock devices), so we just reuse it.
Sorry for no pull request, I'm new to all this github stuff and can't make heads or tails of it  :-[
Anyway, I think I should try and figure out what's up with the scaling the right way.

Builds & Ports / Re: Android Port (SDL2)
« on: May 22, 2014, 08:21:22 am »
Thanks, page! That helped a LOT. Looks like the r9d has stlport that supports exceptions and RTTI, so the compilation went flawless. I believe you only need the header files from boost.
 - As for armeabi and armeabi-v7a, well, I just looked inside your APK, saw that there's only libs/armeabi and no libs/armeabi-v7a and assumed that these were for armeabi. ndk-build _should_ place armeabi-v7a in the armeabi-v7a folder, so I guess there's something weird going on with your build system.
 - About the mikmod and smpeg libraries - okay, that makes sense, I just messed with SDL_mixer configuration and turned off pretty much everything except ogg. Don't know why exactly I did that - probably had some problems compiling it as it is.
 - Oh, the renderer. I've managed to recompile the app with higher internal resolution (still had to set GS and BS to 1.5x in the options, though), turning the cursor back on in the process. For some reason the cursor position didn't scale with the screen, so I had to "patch" the SDL_Event on the fly. I _think_ there must be a better way to do all this.
As for now, well, I got myself a version with 1.5x scaling:

(on a Nexus 4, larger version)

(on a Nexus 7, larger version)
Framerate seems okay, much better than when I've tried messing with the source the first time.

Builds & Ports / Re: Android Port (SDL2)
« on: May 19, 2014, 03:28:09 pm »
After a bit of googling around and fiddling with SDL_gfx (mostly to trick it into compiling with SDL2), I got myself an almost-working OXC-android build from page's source! Well, the debug version, anyway. I've still got a few questions, though:

 - Your says to compile for armeabi-v7a, but the .apk you've posted has its libs built for armeabi; is that just an oversight?
 - Which ndk do you use? I'm using r7-crystax-5.beta3, as it's (kinda) supported by Boost. Still, I had to switch to gnustl_static, as it won't compile with stlport.
 - You're trying to load mikmod and smpeg2, but they're not getting built (at least they're not listed in your Is that right? Anyway, I've managed to run the app without them (after commenting out the corresponding loadLibrary() calls). My guess is that they're needed for different types of user data.
 - One thing I'm looking forward to is scaling the graphics. The tablets could really use the 1.5x-2x original resolution in Battlescape. Unfortunately, for now these options are broken (for a good reason, I guess). When I try and whack a hammer at it by changing the constants in Screen.cpp, the battlescape UI goes missing, but the battlescape itself looks beautiful! Though the animations in that case are painfully slow (even on a Nexus 4!).

Anyway, I'd love to see a how-to on compiling this port (or I could try to retrace my steps, but I'm afraid these would be among the "Worst Practices") and maybe do something useful, though my complete lack of experience as a developer will make that tough.
Oh, and you guys rock! 3D explosions are the best thing, and the android port comes really close.

Pages: 1 2 3 [4]