OpenBOR v3.0 Build 4161 for Android (APK 1.4.2)

Status
Not open for further replies.

CRxTRDude

Member
This is it. Thanks to the collaborative efforts of Plombo (mostly) and myself, Android now has WebM support! Now you can play over WebM videos the same way for Windows on your Android mods!

Other things to note:
  • Uses Tremor instead of Vorbis. Tremor is a fixed-point version of Vorbis designed for devices without floating-point processes, mainly for portable devices such as MP3 players and smartphones. This makes syncing of audio for WebM faster (as well as Ogg audio would also have improved performances)
  • Better support for legacy mods (some mods without video.c would, instead of confining to 320x240 normally, stretch over the screen width of the menu (480x272), this was fixed now)

Download here

Edit: The main build of tremor supports ARM devices and is not as optimized for that, but the build is the one recommended by Xiph.org to be used on ARM, so there.
 
CRxTRDude said:
** Given that you have a more better phone. Tested it on older models with Android 2.3.5, expect audio delays

Edit: The main build of tremor supports ARM devices and is not as optimized for that, but the build is the one recommended by Xiph.org to be used on ARM, so there.

I don't think the audio delays are what you think they are.  Have you heard such delays when playing Ogg Vorbis music files, or just in WebM videos?  If the latter, what you're hearing is the video decoding too slowly, and the audio waiting for it to catch up.
 
The delays were at the sound effects and the WebM playback. The WebM was smooth and was fast enough as the original one, but the audio went on slower than it was intended. Used Big Buck Bunny as example. I think I would need to remove that disclaimer.
 
Downloading, i will test it
---
Works great so far on android, with sound in sync, everything perfect  :D
 
with this build i cant play every streets of rage , like Z, BK vacuum, etc, it crash every time i start first time. help :(
 
Where can I find the PAKs for these so that I can test them? Did you place them properly in the 'Paks' folder in OpenBOR inside your SD card?
 
yes, it started the pics is loaded, loading bar walks, then its close. i download it on soronline. other games like world heroes, jennifer, rocket viper, working well.
 
Can you try to play them again and this time put the contents of the log here (use
quote.gif
quote by the way)

The OpenBORLog file is located in logs folder as usual.
 
Nevermind, just downloaded two of what you said. Here's what I got:

BK Vacuum (filename: bkv3.01.pak): Can't compile script 'takedamagescript' data/chars/Yuki/Yuki.txt [openborconstant error]
SOR Z (filename: RV2.pak*): Can't compile script 'takedamagescript' data/chars/DKnight/DKnight.txt [openborconstant error]

They're probably using an older version of OpenBOR to run. If you want to run it on the newer OpenBOR builds, you must unpack the paks and fix it yourself. There are older versions of the Android APK though, there's one in the 'Modified Android build' link that I have below (look for 'The original build'). If it doesn't work as well, try to search it. Google is your best friend.

Some old games do run, but others need fixing, especially in their script, thye might have used deprecated functions, giving them errors like these.

* probably uses rocket viper 2 as its base
 
I just tried SOR-Z and it crashes saying on a takedamagescript...

EDIT: ok you beat me too it again lol

Here's the offending script thou.

Can't find openbor constant 'ATK_ATTACK1'

blocking.c
Code:
void main()
{
	
	void self = getlocalvar("self");
	float fac=getentityproperty(self,"defense",openborconstant("ATK_NORMAL"),"factor");
	if (fac<1)
	{
		changeentityproperty(self, "colourmap", 1);
		changeentityproperty(self, "maptime", 10 + openborvariant("elapsed_time"));
		changeentityproperty(self, "velocity", 0, 0, 0);
		performattack(self,openborconstant("ANI_FOLLOW2"),0);
		changeentityproperty(self,"defense",openborconstant("ATK_ATTACK1"),1,1,1);
		changeentityproperty(self,"defense",openborconstant("ATK_BLAST"),1,1,1);
		void opp=getlocalvar("attacker");
		int enextanim = getentityproperty(opp, "nextanim");
		int enextthink = getentityproperty(opp, "nextthink");
		changeentityproperty(opp, "nextanim", enextanim + 50);
		changeentityproperty(opp, "nextthink", enextthink + 50);
	}
}
 
Not sure TBH, I think they need to be ATK_NORMAL1 now instead.

EDIT:  Yup that seems to do the trick. :)  Mod is loading now, but there is more crashes from some animationscript.  A few things will probably need to get updated.

EDIT2:

I'm not sure how to fix this one,

Code:
Can't find openbor constant 'AIMOVE2_AVOID'


Code:
void hardSet()
{

	if (openborvariant("current_set")>=2){
		void self=getlocalvar("self");
		void target=findtarget(self);
		if (getentityproperty(target,"animationid")==openborconstant("ANI_FALL")){
			changeentityproperty(self, "aimove",openborconstant("AIMOVE1_AVOID")+openborconstant("AIMOVE2_AVOID"));
		}else{
			if (getentityproperty(self,"direction")==getentityproperty(target,"direction")){
				changeentityproperty(self, "aimove", openborconstant("AIMOVE1_CHASE")+openborconstant("AIMOVE2_NORMAL"));
			}else{
				changeentityproperty(self, "aimove", openborconstant("AIMOVE1_NORMAL")+openborconstant("AIMOVE2_AVOID"));
			}
		}
	}
}
 
CRxTRDude said:
Nevermind, just downloaded two of what you said. Here's what I got:

BK Vacuum (filename: bkv3.01.pak): Can't compile script 'takedamagescript' data/chars/Yuki/Yuki.txt [openborconstant error]
SOR Z (filename: RV2.pak*): Can't compile script 'takedamagescript' data/chars/DKnight/DKnight.txt [openborconstant error]

They're probably using an older version of OpenBOR to run. If you want to run it on the newer OpenBOR builds, you must unpack the paks and fix it yourself. There are older versions of the Android APK though, there's one in the 'Modified Android build' link that I have below (look for 'The original build'). If it doesn't work as well, try to search it. Google is your best friend.

Some old games do run, but others need fixing, especially in their script, thye might have used deprecated functions, giving them errors like these.

* probably uses rocket viper 2 as its base

hey bro, its working, i use the old version build 37 , the two is working, but still no luck playing BK6 final :(, btw thx for replying
 
BeasTie said:
I'm not sure how to fix this one,

Code:
Can't find openbor constant 'AIMOVE2_AVOID'

There is no such thing as AIMOVE2_AVOID. Only valid AIMOVE* openborconstants so far are the following (also some AIATTACK* as well):


  •        
  • AIMOVE1_NORMAL
           
  • AIMOVE1_CHASE
           
  • AIMOVE1_CHASEZ
           
  • AIMOVE1_CHASEX
           
  • AIMOVE1_AVOID
           
  • AIMOVE1_AVOIDZ
           
  • AIMOVE1_AVOIDX
           
  • AIMOVE1_WANDER
           
  • AIMOVE1_NOMOVE
           
  • AIMOVE1_BIKER
           
  • AIMOVE1_STAR
           
  • AIMOVE1_ARROW
           
  • AIMOVE1_BOMB
           
  • AIMOVE2_NORMAL
           
  • AIMOVE2_IGNOREHOLES
           
  • AIATTACK1_NORMAL
           
  • AIATTACK1_LONG
           
  • AIATTACK1_MELEE
           
  • AIATTACK1_NOATTACK
           
  • AIATTACK1_ALWAYS
           
  • AIATTACK2_NORMAL
           
  • AIATTACK2_DODGE
           
  • AIATTACK2_DODGEMOVE

There is that though.
 
In the main openbor code, it's placed in the AIMOVE command handler (as you saw, they're very familiar).

All 'AIMOVE1_*' are commented as:

//main A.I. move switches

The other ones are commented:

//sub A.I. move switches

Probably AIMOVE2 supplements the AIMOVE1. It's best to use the AIMOVE1 than the AIMOVE2 though. It's still unexplained on what they might be, found out that utunnels coded this as well, might as well be careful using it.

EDIT: I think I got it now. It's like doing:

Code:
changeentityproperty(self, "aimove", openborconstant("AIMOVE1_CHASE")+openborconstant("AIMOVE2_NORMAL"));

AIMOVE2 serves as secondary parameter as the main code says.

This one is correct though, because there is such thing as AIMOVE2_NORMAL, but there is no such thing as AIMOVE2_AVOID as the coder here wants to do, that's where it gave off an error.
 
Cool,

Could you poke around in the code sometime and see if there is anything unknown regarding platforms in the code?

checkplatformbelow is the only thing that's known to be available to script.

Bloodbane and I were trying some tricks, but we really need a way for entities to check platforms via script.
 
BeasTie said:
checkplatformbelow is the only thing that's known to be available to script.

Unfortunately BeasTie, this is the only function so far for platform checking available in code. For now you get stuck in writing your own functions for your needs.
 
Status
Not open for further replies.
Back
Top Bottom