SRB2/src/android
Eidolon e79654a33a Completely refactor timing system
Time is now tracked internally in the game using I_GetPreciseTime
and I_UpdateTime. I_Time now pulls from this internal timer. The
system code no longer needs to keep track of time itself.

This significantly improves frame and tic timing in interp mode,
resulting in a much smoother image with essentially no judder at
any framerate.
2022-04-30 16:33:23 -05:00
..
i_cdmus.c Replace C90's junk with a modest macro 2020-10-06 23:04:23 -07:00
i_main.c SRB2 2.1 release 2014-03-15 13:11:35 -04:00
i_net.c SRB2 2.1 release 2014-03-15 13:11:35 -04:00
i_sound.c Merge remote-tracking branch 'public-gl/master' into public-musicplus-core 2019-01-01 10:41:40 -05:00
i_system.c Completely refactor timing system 2022-04-30 16:33:23 -05:00
i_video.c Merge branch 'next' into patch-stuff-again-2 2020-10-10 17:01:10 -03:00
i_video.h SRB2 2.1 release 2014-03-15 13:11:35 -04:00
jni_main.h SRB2 2.1 release 2014-03-15 13:11:35 -04:00
README SRB2 2.1 release 2014-03-15 13:11:35 -04:00

SRB2 for Google Android!

SYNOPSIS

Port of SRB2 to Android, tested against version 1.6 (donut).

I did this with a full Android tree, rather than the NDK thing.

BUILDING

Assuming a pretty standard Android tree, at $REPO, and the SRB2
tree at $REPO/packages/apps/srb2 (that is, the *whole* SRB2
tree, not just this android/ directory):

  cd $REPO
  source build/envsetup.sh # this gives us the mm command,
                           # which is useful for selectively
                           # building only one component.
  cd packages/apps/srb2
  mm

An APK is dumped out at (or similar):
out/target/product/generic/system/app/SRB2.apk

Naturally, an SRB2 APK is architecture specific.  Since most
Android devices are currently ARMEL, this is pretty okay.

NB. It appears that the Java app (the thing that becomes the APK)
is *not* rebuilt if changes are only made to libsrb2.  Grr.

REGENERATION OF JNI HEADERS

Whenever the Java classes in org.srb2.nativecode change,
the C header files that describe the JNI interface to them
need to be regnererated.  Make sure you have the project
built (so that the jar files are up to date), and then:

  cd $REPO/out/target/common/obj/APPS/SRB2_intermediates

  javah -classpath classes.jar -o $REPO/packages/apps/srb2/src/android/jni_main.h org.srb2.nativecode.Main

# ... and no, I don't know how to mash all that into the
# Android.mk build system...