Android port

My 600Mhz ARM one-core processor, easilly handles games like doom, wolfenstein, duke nukem and hexen, provided the engine is comiled natively, and with latest setting it overclocks to 900Mhz on demand (on N900s CPU have good margin for OC).
Sure CPU related blitting is a problem, since dosbox here chocked on Titus the Fox ingame and once double size scaling by CPU is disabled and naive GPU accelerated scaling (overlay mode in SDL) is enabled it got so much boost it even not chockes on Another World’s intro video (DosBox is DOS PC emulator so it handles much less than phone using linux itself).

I know that pixel by pixel blitting of DEF or mixed pallette images couldn’t be helped much, but I’m sure blitting whole surfaces using default SDL blitting API would be accelerated if only proper mode would be checked on SDL init. Of course proper GPU accelerating would need a bit more hassle but there are easy steps. I know just checking directx_fullscreen mode on allegro have increased FPS substantially over standard fullscreen mode with no altering the code (allegro blit functions and surfaces are automatically accelerated if mode allows and applicable elsewere).
I remember SDL hanged before on N900s on just overlay (the most primitive accelerated mode) but it’s ages from them and it’s fixed and I’m sure it would handle much more via native SDL support.
I suggest making configuration file beeing able to choose mode in which SDL inits (current compiled DosBox seems able to do only “surface” and “overlay”, but on PC it allowed much more and I am sure it uses SDL), and choose hardware resolution as different than software one (for SDL apply scaling), which would at least allow accelerated scaling from game buffer to screen. (HW Res have to be 800x480 on fullscreen but software one can be virtually anything provided at least “overlay” is checked in SDL init).
Go with this and I can check if it is enough for me to play fluently, if it fail I (and all N900s owners) would be able at least play current vcmi version at all (currently we have only fheroes2, a heroes2 clone, and non-functional old version of vcmi).
If there’s not much volounteers I may try to write a patch but my allegro experience is small to medium and SDL one is virtually non-existent.

majaczek, If you write a continuation of the game port to Android, you will receive recognition from many gamers, and from me personally, I hope you all will)))

After my Moto Mt870 install VCMI v0.85.apk, Heroes 3 can work, playing the game is no problem,but when you save and load the game data,the App will exit automatically. So Pls you solve the problem and let the players enjoy the game on Andriod system.

Can Moto Mt870 enjoy VCMI 0.89? and can you offer a VCMI v0.89.apk to download?

Many Thanks!!!

no they cannot. android port is old unfinished and made by a developer that is not active on it anymore.

visit android topic for details but the short version is android port is not supportet discontinued and unofficial.

Sorry for misunderstanding, but N900 doesn’t natively run Android (it runs a linux called Maemo, but Nitdroid, a homebrew version of Android for NIT devices can be installed as secodary system via multiboot).

I’m only pointing my phone should be able to run VCMI despite having fairly weak electronics. It’s already Linux so it would be ale to run VCMI now (after recompile - PC is x86 and Smartphones are generally ARM) if it only were true that VCMI can un on 800x480 resolution (phone native one). I’m intrested in helping doing the scaling for small screens and pointing a bit how to use SDL (which is a thing giving VCMI graphics, animation and sound display) to less waste resources. Of course more substantial changes to UI are needed to be able use one button mouse (which touchscreen technically is) and use more effcient small screen on phone-sized devices rather than tablets.

VCMI already run on WIN on PC and linuxes on PC and SPARC, so I was still refering to main VCMI code while obviously stating problems on mobile devices. Android is a bit of another story since this would be third family of systems for VCMI (Android is NOT a linux, only parts of kernel are common). Pelya did more a hack than a valid port (the game runs but is far from compatible with main release) so code were not assimilated to actual project and Pelya left the VCMI when it happened a bit too hard for him and pointed VCMI forum for promotion/advert but caused more harm than heal. I fear the porting to Android or rather giving support to trunk is to be done completely redone, and is hard to do without coders and testers on this platform. I may donor for testing VCMI on Android as far NITDROID is compatible with original ANDROID, but I have completely no reason to learn and write code specifically for Android. Anyway I would help a bit on testing and coding for mobile devices so I come to speak in this topic. I think the Android support will come after general mobile devices support and my phone still run linux family system with family beeing supported officially by trunk (main code branch) of VCMI and I am not the saviour for pilgrims from Android app store. The other problem the Android is the system family designed to waste hardware resources (Google wanted it to run on any device so hard, that it ruined life of phone hardware producers since they have to sell high-end hardware in middle class phones, and I would argue if it is actually true Android beeing a SMARTPHONE SYSTEM) so despite my hardware would support VCMI you running Android would rather require device which is hardware-wise two classes higher.

Once leaving for a bit hardware problems imagine you have written a game for DOS while no thinking about use of another systems, and then want to support linux for the game. Porting to Android/Supporting it properly would be similairly hard. And now know that even using emulation miracles like wine (which eat your resources but generally allows run windows programs under linux), linux cannot even support SOME of WoG versions (crashes on run while many games from WIN run generallly fine). I can help a bit on support for mobile devices but Android is not my part of swamp. If you choose new phone with some linux (comming Tizen is going to be classical linux) you may be able to run VCMI on phone a few years earlier than sticking to Android. I foresee that Android devices would eventually die as a line but some non-android devices would be able to run some already done programs dedicated for android (the move of RIM were very smart, I hope Tizen would also feature Android Virtual Machine - VM beeing required is why ANDROPHONES are more FeaturePhones than SmartPhones so they should still count as refined type of dumbphone).

Thanks!

But I had a try to download the VCMI 0.89 DATA for Linux to overcopy the Data of my game,the game can’t work,so can pls tell me where can go for help,thanks!

Thanks for your Pelya hard work!!!

Because heros 3 can work in xp system, so I think VCMI for xp is not obligatory,but VCMI for andriod system is Obligatory! It is only the way to run Heros 3 game on andriod system, so it is helpful and valuable for users!

I use VCMI 0.85.03(or 0.86.04) to run Heros 3 game on andriod, they work,the game sometime crashes and exit. I think it is no big deal for the funs of Heros 3, But Playing the game can NOT “Save” and “Load” the game data are a very big problem for us.

So Pls Pelya solve this problem for us and release the new VCMI.APK VERSION to download, Thanks a million!!!

Let me know if you release the new VCMI.APK VERSION,my email: [email protected],Thanks again!!!

well…

you can try e mailing payla as he is the one that made the port.

Quite suprisingly I got access to Android tablet today :). It looks like I’m going to be it’s only owner in the end.

It’s not like I know this system and I’m not going to develop any app for it anytime soon, but who knows :wink:

Hello!
Is it possible, to run VCMI on android using linux without any bug?
play.google.com/store/apps/deta … ploy&hl=hu

Performance would be a big problem i think.

Kind of. Possible but this is far, far from straightforward. To do this you’ll need:

  1. Install some distribution using Linux deploy
  2. Compile ARM build of vcmi (or find binary compiled by someone else)
  3. Install H3 data
  4. Start vcmi using some VNC client

I can’t help you with any of these but I know that this is possible. And you definitely will avoid all Android-specific bugs.

Performance is not a limiting factor because this method does not involves any emulation/virtual machine but not all mobile devices are powerful enough to run vcmi.

Off topic:
Sad fact: installation base of Linux Deploy that can run VCMI is 10 times smaller compared to install base of buggy vcmi build.

I found a russian site where they ported vcmi to armv7:
4pda.ru/forum/index.php?showtopi … ry20457929
And this is the gameplay video:
youtube.com/watch?v=-L0LFqgm5M8
He is using multirom to switch between android and ubuntu at boot.

I try to download the vcmi.7z attached in the upper post, they made it for Linux deploy.

Results:
http://img38.imageshack.us/img38/3425/screenshot2013051113100.png
http://img189.imageshack.us/img189/9693/screenshot2013051112530.png
http://img194.imageshack.us/img194/3664/screenshot2013051112535.png
It’s working, but slow. FPS was around 5, it’s hardly playable. Who has a stronger phone (or tablet) can give it a try.
(I have 1gb ram, 1ghz dual core.)

VCMI team should really make an effort to take the VCMI Google Play page down. It only makes bad rep for the whole project.

SDL 2.0 is going to be final soon. Android support introduced.

I’d Be Willing To Help Make A Better Andriod Port, But I’ve Never Tried Coding For Andriod. I Had An Idea That Maybe You Could Make An Seperate App That Updates The Engine Used In Existing App. Here’s What I Mean

Current VCMI Port:87 Or 83

So

Files Updated Since 87/83 = Replace With New Ones
Files Left The Same = Stay

That Way It Wouldent Take As Long, or Be As Hard

Also, The Team Wouldent Need An Andriod Device

Google Has Made An Andriod SDK That Can Make A Virtual Device, So You Could Test On That Instead Of A Real Phone.

Also, If Anyone Updates This Port, Please Make It Andriod 2.1 Compatible, Or At Most 2.2. Some Older Devices From Those Have The Power To Run This. I Ran The Old Port On The Following Phone

HTC Driod Eris: Andriod 2.1 : 525MHZ CPU

It Was Really Slow But If You Like The Game Its Worth It, Also It Never Crashed

Im Getting Ready To Test On A Newer Phone, Built FOR Gaming SPECIFICALLY

Sony Xperia Play: Andriod 2.3.4 : Dual-Core 1GHZ SnapDragon

It Has Built In PSP Controls(Even Digital Touch-Pad Analogs) And A 800x480 Display.So
With AnyLucK It Will Work

Ill Post Back Later, But If You Do Make An Update To This And Need A Tester, Ill Test On Both My Devices.

-Katarn Out

Please, don’t start every word with capital letter.

On topic: none of us have either time or skills to work on Android phone. Check this: [forum.vcmi.eu/t/android-version-faq/587/1)

Won’t work. IIRC current version from Android Market works perfectly in Android SDK but barely works on most of phones due to hardware differences.

Hello Guys,

some of you might know me, I’m the one who has been trying to port VCMI to Android.

I took the work Pelya had build and now I got registered on this forum.

The bad news are, as many of you know, vcmi for android is outdated, very outdated and that has to change.

The good news, I finally got it running!!! Nevertheless I still don’t get it working with the data.

I want to give a release for android but I will need some help. I cannot even run on PC, so something must be wrong about my data.

I hope there are still people wanting to help me on that.

I don’t know the users here, but I’m sure some of you have written me. I have been getting a lot of emails for porting that game.

What nobodys knows, because it so happened yesterday, it compiles and runs :slight_smile:.

Anyway, I might tell more depending on how hot this topic is and who is willing to help.

Also I want to contribute on bugs if I find any as Pelya did and hope they go into the upstream. That way we can work better on a port of Heroes III and make it awesome for phones and tablets